Bonjour,
Je modifie actuellement un site pour le rendre plus "propre",
j'ai modifié une requête SQL de la forme :
dont le résultat de explain me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT al.titre, al.image_lien, al.titre_url, ar.nom_url FROM ms_album al, ms_artiste ar WHERE al.id_artiste1 =13 AND ar.id =13 AND ( TO_DAYS( NOW( ) ) - TO_DAYS( date_sortie ) <=3 ) ORDER BY al.coeff_actu DESC , al.reference DESC LIMIT 5
par :id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ar const PRIMARY PRIMARY 4 const 1 Using filesort
1 SIMPLE al ref index_id_artiste1 index_id_artiste1 4 const 20 Using where
dont explain me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 EXPLAIN SELECT al.titre, al.image_lien, al.titre_url, ar.nom_url FROM ms_album al LEFT JOIN ms_artiste ar ON ar.id = al.id_artiste1 WHERE al.id_artiste1 =13 AND (TO_DAYS(NOW()) - TO_DAYS(date_sortie) <= 3) ORDER BY al.coeff_actu DESC, al.reference DESC LIMIT 5
La deuxième requête semble plus rapide, mais j'ai du mal à analyser la différence entre les deux EXPLAIN, puisque les clés utilisées sont les mêmes et les extra aussi ; seul l'ordre change.id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE al ref index_id_artiste1 index_id_artiste1 4 const 20 Using where; Using filesort
1 SIMPLE ar const PRIMARY PRIMARY 4 const 1
Selon vous, quelle requête faut-il privilégier ?
Partager