【发布时间】:2023-03-09 20:40:01
【问题描述】:
在处理大型记录时似乎不建议使用OFFSET,因为性能较慢,而是使用WHERE id < x LIMIT y之类的东西。
如果是这种情况,为什么还存在OFFSET,它还有其他用途吗?
【问题讨论】:
标签: mysql sql database pagination
在处理大型记录时似乎不建议使用OFFSET,因为性能较慢,而是使用WHERE id < x LIMIT y之类的东西。
如果是这种情况,为什么还存在OFFSET,它还有其他用途吗?
【问题讨论】:
标签: mysql sql database pagination
从概念上讲,offset(以及limit)的工作方式是在生成整个结果集后对其进行过滤。因此,为了获得第“y”行,需要生成该行的所有行。
如果有另一种方法可以使用where 获取相同的行,那么通常会更快(对于较大的“y”值),因为不必生成中间行。
不过,offset 还是很有用的。否则,您如何轻松地从候选人那里获得平均民意调查评分超过 11 分的候选人,以便您知道该让谁参与“失败”辩论?您将如何获得第二高的价值,这就是您想要的?对于较小的数据集,offset 对于这些类型的问题可能非常有用。它也适用于对较小的结果集进行分页。
【讨论】: