问题描述
AFAIK,Pageable类仅支持基于LIMIT / OFFSET的分页。但是,尽管这是一个非常通用的解决方案,但它还是有一些缺点,如https://momjian.us/main/blogs/pgblog/2020.html#August_10_2020
键集分页(又名 Seek方法或基于游标的分页)在并发数据插入过程中的性能和行为方面具有一些优势,删除。有关详细信息,请参见
- https://use-the-index-luke.com/no-offset
- http://allyouneedisbackend.com/blog/2017/09/24/the-sql-i-love-part-1-scanning-large-table/
- https://slack.engineering/evolving-api-pagination-at-slack-1c1f644f8e12
- https://momjian.us/main/blogs/pgblog/2020.html#August_17_2020
因此,是否有任何计划支持这种分页方法?通过Pageable<KeyType>
和getKey()
合并到sql的WHERE子句中?
解决方法
这种可能性在团队中进行了讨论,尽管并不紧急,但我们最终还是希望提供。
第一步是在Spring Data Commons中为此提供支持,即与持久性存储无关的API。问题是DATACMNS-1729