我正在负载下测试数据库设计,我只需要检索固定数量的行(5000)
我可以指定一个LIMIT来实现这一点,但是查询似乎会构建所有匹配行的结果集,然后仅返回该限制中指定的行数。那是怎么实现的?
MySQL是否有读取一行,读取另一行并在检索到第5000个匹配行时基本停止的功能?
MySQL很聪明,如果您LIMIT 5000在查询中指定a ,并且有可能在不先生成整个结果集的情况下生成该结果,则它将不会生成整个结果。
LIMIT 5000
例如,以下查询:
SELECT * FROM table ORDER BY column LIMIT 5000
table除非有索引column,否则此查询将需要扫描整个对象,在这种情况下,它会很聪明,并使用索引来查找最小的行column。
table
column