千万级别的数据,单纯的要做一个分页展示的列表,怎么样做最好

发布于 2022-09-11 19:19:20 字数 163 浏览 17 评论 0

有一个需求,就是单纯的展示千万级别的数据,分页展示,使用的是JPA,原生查询点击下一页就需要花费4秒左右,初步分析是因为select count这个查询比较耗时,还得支持其他各种查询条件。 如果想让查询做到1s左右的速度,怎么解决呢?
要分页的话select count操作是必不可少的吧? 求解答!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吐个泡泡 2022-09-18 19:19:20

"SELECT reltuples FROM pg_class r WHERE relkind = 'r' AND relname = 'myTables';"
这个非常快。但是是估计值。

可以用下面的语句提前更新一次:
vacuum "myTables";
vacuum;

吃素的狼 2022-09-18 19:19:20
  1. 字段加索引
  2. 使用select ${字段} from ${表名} where ${条件} and id > ${id} limit ${pageIndex}, ${pageSize}这样的SQL,注意使用id > ${id}这样能更快一些。这就需要你将上一页查询到的最大id值传入下一次的查询。
柒夜笙歌凉 2022-09-18 19:19:20

什么信息都没有,你想让人怎么回答?
数据库用的什么?mysql?
mysql可以用explain查你的语句有没有用到索引

无法回应 2022-09-18 19:19:20

看场景了,有些分页是不显示页数的,只有下一页类似百度.
实在需要可以缓存count值, 前端缓存后端缓存都可以.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文