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 12.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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.