sql'limit'命令如何工作?

时间:2012-04-11 16:08:10

标签: database pagination limit

我知道'limit'命令用于网站中的分页 我想知道DB是否能够找到起始索引而不会线性地遍历结果集。

例如,对于查询“查找第100和第120之间的内容”,数据库是否可以找到查询的第100个项目而不会线性地超过100个项目?

如果必须进行线性搜索,我想我在任何大型网站上看到的分页都不是通过简单的'limit'命令实现的?

1 个答案:

答案 0 :(得分:0)

在不谈具体实现的情况下,肯定有数据结构支持基于偏移的即时查找。想想整数,结构和指针的正常C数组(可能指向结构)。

除此之外,关系数据库还有各种缓存方案,因此即使第一次查找需要一段时间,也可以显着加快后续查询。

在实际实现的情况下,您应始终对索引的列进行ORDER BY和LIMIT。