Rails 推荐一个游标分页的 gem:rails_cursor_pagination

Rei · 2022年12月26日 · 最后由 ryudoawaru 回复于 2023年01月28日 · 812 次阅读

游标分页是指不用页数作为查询条件,而是用排序的 id 值为条件的分页方式。

页数分页因为用到 offset,在大量数据的时候会产生性能问题。并且页数分页不适合于会变动的、滚动更新的时间线展示(内容会重复或缺失)。

本来我考虑自己写一个,实际写的时候发现要考虑 正序/逆序 * 向前查/向后查 的四个情况,查询条件很容易写乱了。后来一搜有个现成的 gem,就用这个了 https://github.com/xing/rails_cursor_pagination

这个 gem 目前使用的人很少,但代码质量很高,不污染其他对象,文档比代码还多。相比 pagy-cursor 更完善,支持以其他排序字段+id 的联合索引查询。

它的工作原理在 README 里写的很详细,建议阅读 https://github.com/xing/rails_cursor_pagination#how-does-it-work

有需要的可以收藏一下。

pg 应该有个 gem 就是专做游标分页的,好多年了。

tim_lang 回复

还记得名字吗?我想对比下实现。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号