游标分页
Keyset Pagination,也称为基于键的分页或游标分页,是一种高效的分页技术,用于解决传统分页方法(基于 OFFSET 和 LIMIT)在处理大数据集时的性能瓶颈问题。相较于传统分页,Keyset Pagination 不依赖页码或偏移量,而是通过上一页的最后一条记录的标识符(通常是主键或唯一索引)来标记分页的起始点,从而实现更高效、更稳定的分页。
原理
游标分页是一种基于游标的分页方式,通过使用上一页的最后一条记录的标识(如主键或时间戳)来确定下一页的数据,而不是依赖 OFFSET。
示例查询
sql
SELECT *
FROM table_name
WHERE id > 100
ORDER BY id
LIMIT 10;
id > 100:表示从上一页最后一条记录的主键(id=100)之后开始查询。LIMIT 10:每次获取 10 条记录。
优点
- 性能优越:避免了 OFFSET 扫描的性能问题,查询直接从指定游标位置开始。
- 数据一致性:即使数据在分页过程中发生变化,也能保证数据不会重复或丢失。