:: DEVELOPER ZONE
DISTINCT combiné avec un ORDER BY aura dans la plupart des cas
recours à une table temporaire.
Notez que comme DISTINCT peut utiliser GROUP BY, apprenez
comment MySQL fonctionne avec les champs de ORDER BY et HAVING qui
ne sont pas dans la liste des colonnes sélectionnées. See Section 13.9.3, « GROUP BY avec les champs cachés ».
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 avec
EXPLAIN), MySQL arrêtera de lire à partir de t2 (pour cette ligne particulière
de t1) lorsque la première ligne de t2 est trouvée.
© 1995-2005 MySQL AB. All rights reserved.
