5.2. Оптимизация SELECT и других запросов
5.2.5. Как MySQL оптимизирует DISTINCT
DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY , помимо этого, во многих случаях также требуется временная таблица.
Если LIMIT # указывается совместно с DISTINCT , MySQL остановится, как только найдет # уникальных строк.
Если не все столбцы и не во всех таблицах используются, MySQL прекратит сканирование неиспользуемых таблиц, как только найдет первое совпадение.
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
В случае, если, предположим, таблица t1 используется перед t2 (это проверяется при помощи EXPLAIN ), MySQL прекратит чтение в t2 (для каждой отдельной строки из t1 ), после того как найдет первую строку в t2 .
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|