Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous,
je travaille sur un moteur de recherche et j'ai grandement hésité entre la recherche par LIKE ou par Full Text. Sachant qu'il risque d'y avoir un grand nombre d'enregistrements, j'ai opté pour le Full Text.
Cela dit, la première fois que j'exécute la requête, celle-ci met près de 20 secondes à être exécutée (pourtant je ne suis qu'en local), tandis que si je la charge une seconde fois juste après, le résultat est instantané.
Au départ, je me suis dit que ça venait d'un problème avec la requête créée dans Zend Framework et finalement je l'ai testée sous PhpMyAdmin et le résultat est identique. J'ai donc fait un profilage de la requête et voici le résultat la première fois :
(initialization) 0.0000032
checking query cache for query 0.0000887
Opening tables 0.000018
System lock 0.0000065
Table lock 0.0000425
init 0.0000715
optimizing 0.0000187
statistics 0.0000607
preparing 0.0000175
FULLTEXT initialization 0.000217
Creating tmp table 0.0040835
executing 0.000006
Copying to tmp table 19.350018
Sorting result 0.0011235
Sending data 0.001692
end 0.000006
removing tmp table 0.0045977
end 0.000009
query end 0.0000042
storing result in query cache 0.000005
freeing items 0.0000387
closing tables 0.0000122
logging slow query 0.0000042
la seconde fois :
(initialization) 0.000003
checking query cache for query 0.000008
checking privileges on cached 0.000005
sending cached result to clien 0.0000709
logging slow query 0.000003
Quelqu'un a-t-il une idée de pourquoi ça met autant de temps de créer la requête dans la table temporaire ?
Comment peut-on réduire ce laps de temps ?
Si quelqu'un a une idée, je suis preneur
Merci
Hors ligne
Salut merci pour ta réponse. En fait je n'avais pas d'index sur certains champs, ce qui causait la lenteur de la recherche. Maintenant, c'est rétabli.
Hors ligne