以下是我用genre_id 1获取20行的查询。
EXPLAIN SELECT * FROM (`content`)
WHERE `genre_id` = '1'
AND `category` = 1
LIMIT 20
我在genre_id 1的内容表中总共有654行,我在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
HERE我找到了答案
估算行数时不考虑LIMIT偶数 如果你有LIMIT限制将检查多少行MySQL 仍然会打印完整的数字
但也在评论中发布了另一条回复:
现在在估算行数时会考虑LIMIT。我 不知道哪个版本解决了这个问题,但在5.1.30,EXPLAIN中 准确考虑LIMIT。
我正在使用带有InnoDB的MySQL 5.5.16。因此,根据上述评论,它仍然没有考虑到。所以我的问题是mysql是否通过所有654行返回20行,即使我已设置限制?感谢