分类

  • 基于页 + 偏移量
  • 基于游标

基于页/偏移量的分页

基于页的分页:

基于偏移量的分页:

优点:易于实现。

缺点:

  1. 当 offset 变多时,查询会变慢,因为数据库会处理偏移前的所有数据,并在最后返回时丢弃掉。

  2. 当数据更新频繁时,可能会丢失数据或者展示两次

基于游标的分页

  1. 挑选一个索引列,例如 ID 作为游标:

  2. 出于安全考虑,可能需要对 cursor 进行 hash

  3. 客户端感知它上一次的游标

  4. 利用游标去过滤数据

  5. 返回给客户端下一次查询的游标

分类

基于 keyset 的分页:

基于时间戳的分页: