MySQL Объясните предел строк
Ниже мой запрос, чтобы получить 20 строк с genre_id 1.
EXPLAIN SELECT * FROM (`content`)
WHERE `genre_id` = '1'
AND `category` = 1
LIMIT 20
У меня всего 654 строки в таблице содержимого с genre_id 1, у меня есть индекс genre_id, и в приведенном выше запросе я ограничиваю результат отображением только 20 записей, что работает нормально, но объяснение показывает 654 записи в строках, я пытался добавить индекс по категории но все тот же результат, а затем я также удалил AND category = 1, но то же количество строк:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE content ref genre_id genre_id 4 const 654 Using where
ВОТ Я нашел ответ
LIMIT не учитывается при оценке количества строк. Даже если у вас есть LIMIT, который ограничивает количество проверяемых строк, MySQL по-прежнему будет печатать полное число
Но также в комментариях был опубликован другой ответ:
LIMIT теперь учитывается при оценке количества строк. Я не уверен, какая версия решает эту проблему, но в 5.1.30 EXPLAIN точно учитывает LIMIT.
Я использую MySQL 5.5.16 с InnoDB. так, как в приведенном выше комментарии его по-прежнему не принимая во внимание Итак, мой вопрос: MySQL проходит все 654 строки, чтобы вернуть 20 строк, даже если я установил лимит? Спасибо