一尘不染

在MySQL中仅检索固定数量的行

mysql

我正在负载下测试数据库设计,我只需要检索固定数量的行(5000)

我可以指定一个LIMIT来实现这一点,但是查询似乎会构建所有匹配行的结果集,然后仅返回该限制中指定的行数。那是怎么实现的?

MySQL是否有读取一行,读取另一行并在检索到第5000个匹配行时基本停止的功能?


阅读 209

收藏
2020-05-17

共1个答案

一尘不染

MySQL很聪明,如果您LIMIT 5000在查询中指定a ,并且有可能在不先生成整个结果集的情况下生成该结果,则它将不会生成整个结果。

例如,以下查询:

SELECT * FROM table ORDER BY column LIMIT 5000

table除非有索引column,否则此查询将需要扫描整个对象,在这种情况下,它会很聪明,并使用索引来查找最小的行column

2020-05-17