[数据库/PostgreSQL] 真的没有完美的分页方法吗?

2022-03-14 13:26:03 +08:00
 kaifeiji
因为性能原因,研究了很多分页 SQL 的实现:

1 、limit-offset 的耗时线性增长;
2 、keyset 不能跳转指定页;
3 、xmin 基于事务,可能有“空洞”;
4 、ctid 基于存储,不能用 where 条件过滤;
5 、pg_stats 基于统计数据,实时性差,结果不精确。

具体可参考这篇文章:

https://kaifeiji.cc/post/do-i-really-know-about-pagination/

我想问的是,有没有:

1 、耗时固定
2 、能跳转指定页
3 、没有“空洞”
4 、能用 where 条件过滤
5 、实时性、结果精确

的分页方法?
6141 次点击
所在节点    PostgreSQL
41 条回复
liaohongxing
2022-04-05 09:34:55 +08:00
tidb 有个 tiflash 组件, tiflash 据说魔改的 clickhouse, 基于列存储, 实测 count 也快,分页也快 ,最完美的应该就是基于列存储,根据 sql 自动选择, 这样 where x1= ? and x2= ? ,根据列查

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/840205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX