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.