MySQL.RU .:. Одобрено лучшими российскими программистами
Справочное руководство по MySQL5.2.8 Как MySQL оптимизирует LIMIT
5.2.8 Как MySQL оптимизирует LIMIT
В некоторых случаях, когда используется LIMIT # и не используется HAVING ,
MySQL будет выполнять запрос несколько иначе:
-
Если при помощи
LIMIT выбираются только несколько строк, MySQL будет
использовать индексы в тех некоторых случаях, когда он обычно
предпочел бы делать полное сканирование таблицы.
-
Если
LIMIT # используется с ORDER BY , MySQL закончит сортировку, как
только найдет первые # строк, вместо того, чтобы сортировать всю
таблицу.
-
При сочетании
LIMIT # с DISTINCT MySQL остановится, как только найдет
# уникальных строк.
-
В некоторых случаях группировка
GROUP BY может быть выполнена путем
упорядоченного считывания ключа (или путем выполнения сортировки по
ключу) и последующего вычисления итогового результата пока не
изменится значение ключа. В этом случае LIMIT # не будет вычислять
какие-либо ненужные предложения GROUP BY .
-
После того как MySQL пошлет первые
# строк клиенту, он прервет
выполнение запроса (если не используется SQL_CALC_FOUND_ROWS ).
-
LIMIT 0 всегда будет быстро возвращать пустую выборку. Эта команда
полезна для проверки запроса и получения типов столбцов результата.
-
Если сервер для выполнения запроса использует временные таблицы,
LIMIT
# применяется для вычисления того, сколько для них потребуется места.
|