千万级别的数据,单纯的要做一个分页展示的列表,怎么样做最好
有一个需求,就是单纯的展示千万级别的数据,分页展示,使用的是JPA,原生查询点击下一页就需要花费4秒左右,初步分析是因为select count这个查询比较耗时,还得支持其他各种查询条件。 如果想让查询做到1s左右的速度,怎么解决呢?
要分页的话select count操作是必不可少的吧? 求解答!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
"SELECT reltuples FROM pg_class r WHERE relkind = 'r' AND relname = 'myTables';"
这个非常快。但是是估计值。
可以用下面的语句提前更新一次:
vacuum "myTables";
vacuum;
select ${字段} from ${表名} where ${条件} and id > ${id} limit ${pageIndex}, ${pageSize}
这样的SQL,注意使用id > ${id}这样能更快一些。这就需要你将上一页查询到的最大id值传入下一次的查询。什么信息都没有,你想让人怎么回答?
数据库用的什么?mysql?
mysql可以用explain查你的语句有没有用到索引
看场景了,有些分页是不显示页数的,只有下一页类似百度.
实在需要可以缓存count值, 前端缓存后端缓存都可以.