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