一、该问题的重现步骤是什么?
数据超过二十万以上 越往后分页就越慢 有没有优化得方案 我的单表数据量在一千万左右
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
首先,分页这种事本来就是越往后越慢。
就算google、baidu这种体量的大公司也没有解决。搜索引擎顶多也就给你分到100页左右。
其次回到你的问题。数据库单表1000w了,没有分表吗?200-300w就应该考虑分表了。
为了应急,我们先不讨论分表。
看看你的分页sql语句,查询条件有没有索引,索引是怎么加的
模糊查询like 尽量 只在后面加%,不要在前面加%
使用explain 分析sql语句,看看是哪一步性能不好
分页还有一个大的性能消耗就是count,他是比较耗时的。在数据量很大的情况下,count有点误差其实是无所谓的。可以自己改造一下,关闭mybatis分页的自动count,你可以count一次,把结果存到redis,然后定期去更新count的大小。就可以省掉count的时间。
扫一扫访问 Blade技术社区 移动端