这非常简单,但我注意到,他们使用页码而不是偏移。我知道差别很小(页面上的行数乘以页面上的行数或者按页面上的行划分偏移量),但我想知道是否建议使用另一个。
某些网站(如Google)当然使用更复杂的系统,因为他们需要跟踪您的实际搜索。但我正在考虑一个简单的网站,这无关紧要。
推荐的技术是什么?
答案 0 :(得分:4)
当您分页的结果集非常大时,偏移对于优化也很有用。
这是因为在某些情况下它允许你做
WHERE my_sortorder >= (some offset)
LIMIT 10
而不是
LIMIT 10 OFFSET 880
效率较低。索引可以直接转到匹配my_sortoder> = 某些偏移量的所有行,但是当您使用OFFSET和LIMIT时,它需要首先查找并扫描所有880行。
答案 1 :(得分:2)
使用偏移量。如果您选择允许每页的变量(或用户定义)结果数量,则编码很容易。
答案 2 :(得分:2)
使用limit
和offset
的组合是最好的,因为如果您更改限制,则无需进一步数学计算新的页码。
例如,每页有20个对象,假设第1页返回索引为0 - 19的对象,如果您在第2页,则应该查看索引为20 - 39的对象。如果我现在决定更改我的限制为10,最常见的行为是显示索引为20 - 29的对象。
要完成上述行为,您需要使用新限制重新计算应该使用的页面。在上面,如果您要将限制更改为10,但将页码保持为2,那么您将显示索引为10 - 19的对象。您需要将页码重新计算为3,以便对象20 - 显示了29个。
我的意见,当然。