有一个需求,就是单纯的展示千万级别的数据,分页展示,使用的是JPA,原生查询点击下一页就需要花费4秒左右,初步分析是因为select count这个查询比较耗时,还得支持其他各种查询条件。 如果想让查询做到1s左右的速度,怎么解决呢?
要分页的话select count操作是必不可少的吧? 求解答!!
有一个需求,就是单纯的展示千万级别的数据,分页展示,使用的是JPA,原生查询点击下一页就需要花费4秒左右,初步分析是因为select count这个查询比较耗时,还得支持其他各种查询条件。 如果想让查询做到1s左右的速度,怎么解决呢?
要分页的话select count操作是必不可少的吧? 求解答!!
"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值传入下一次的查询。8 回答6.5k 阅读
3 回答3.7k 阅读✓ 已解决
2 回答3.3k 阅读
5 回答1.5k 阅读
3 回答1.8k 阅读✓ 已解决
2 回答2.1k 阅读
3 回答2.1k 阅读
什么信息都没有,你想让人怎么回答?
数据库用的什么?mysql?
mysql可以用explain查你的语句有没有用到索引