5.2 Optimisation des SELECT s et autres requêtes
5 Optimisation de MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT ) . Mesurer les performances d'une requête . Vitesse des requêtes SELECT . Comment MySQL optimise les clauses WHERE ->Comment MySQL optimise la clause DISTINCT . Comment MySQL optimise LEFT JOIN et RIGHT JOIN . Comment MySQL optimise les clauses ORDER BY . Comment MySQL optimise la clause LIMIT . Vitesse des requêtes INSERT . Vitesses des commandes UPDATE . Rapidité des requêtes DELETE . Autres conseils d'optimisation
|
5.2.5 Comment MySQL optimise la clause DISTINCT
DISTINCT
est converti en
GROUP BY
sur toutes les colonnes,
DISTINCT
combiné avec un
ORDER BY
aura dans la plupart des cas
recours à une table temporaire.
Quand vous combinerez
LIMIT #
avec
DISTINCT
, MySQL stoppera dès qu'il
trouvera
#
lignes uniques.
Si vous n'utilisez pas de colonnes de toutes les tables utilisées, MySQL arrête
de scanner la table non-utilisée dès qu'il trouve la première correspondance.
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
|
Dans ce cas, en supposant que
t1
est utilisée avant
t2
(vérifiez agvec
EXPLAIN
), MySQL arrêtera de lire à partir de
t2
(pour cette ligne particulière
de
t1
) lorsque la permière ligne de
t2
est trouvée.
|