Neoxy Posté 10 Juin 2010 Posté 10 Juin 2010 (modifié) Bonjour, J'ai cru comprendre qu'un EXPLAIN qui répond un : Using temporary; Using filesort pour une requête Mysql avait besoin d'être revue pour être optimisée... Depuis quelques semaines, je fait le tour de mes requêtes en les soumettant à Explain afin de voir si tout va bien, et j'ai un cas de figure bien particulier que je n'arrive pas à cerner d'autant plus que la requête concernée ne me semble pas compliquée... Structure des tables : table1(id, texte ..... , prio, last_update) : PRIMARY KEY sur id, index composite sur (prio et last update) table2(id, zone) : PRIMARY KEY composite sur id, zone et ajout d'un index sur zone La table1 comprend près de 150 000 enregistrements et la table2 comprend 450 000 enregistrements... On peut dire qu'il y a 3 enregistrement dans table2 pour un enregistrement pour la table1... (1, n) Requête en question La requête en question concerne deux tables jointes et comprend un petit tri : select id, texte, prio, last_update from table1inner join table2 on (table1.id = table2.id)where table2.zone = 44order by prio desc, last_update desclimit 0,10 Explain de la requête : id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE table2 ref PRIMARY,zone zone 4 const 162 Using temporary; Using filesort 1 SIMPLE table1 eq_ref PRIMARY PRIMARY 3 table2.id 1 Using where L'exécution de la requête est plutôt rapide : 0,01 secondes (malgrès le nombre d'enregistrements) cependant, je ne comprend pas pourquoi mysql a besoin de créer une table temporaire et d'effectuer un re-tri pour l'exécution de la requête... Es ce qu'il y a un oubli ou un rajout de trop au niveau des indexes ? Es ce qu'il y a une variable serveur à modifier pour éviter ce genre de message.. ? En espérant que ce que je viens d'expliquer est suffisant pour que vous puissiez m'éclairer ! EDIT : Je crois que cela est lié à l'order by car lorsque je supprime cette clause, je n'ai plus de : Using temporary; Using filesort Mais cela m'embête car j'ai besoin de mes tri Cordialement, Modifié 10 Juin 2010 par Neoxy
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant