DISTINCT combinado com ORDER
BY também irá em vários casos criar uma tabela
temporária.
Note que como DISTINCT pode usar
GROUP BY, você deve estar ciente de como o
MySQL funciona com campos na parte ORDER BY
ou HAVING que não são parte dos campos
selecionados. See Secção 6.3.7.3, “GROUP BY com Campos Escondidos”.
Quando combinando LIMIT row_count com
DISTINCT, o MySQL irá parar logo que
encontrar row_count registros únicos.
Se você não utiliza colunas de todas tabelas usadas, o MySQL irá parar a varredura das tabelas não usadas logo que encontrar a primeira coincidência.
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
Neste caso, assumindo que t1 é usando antes
de t2 (confira com
EXPLAIN), MySQL irá parar de ler de
t2 (para aquele registro particular em
t1) quandoo primeiro registro em
t2 for encontrado.
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.
