今天看到一篇文章讲的就是mysql数据有100万的时候,分页的时候,查询非常慢,针对这个问题讲优化方案
实验准备
这里我准备了1000万数据的一张表,进行测试
默认分页情况下
select id,username,age,word from demo limit 101,10;
select id,username,age,word from demo limit 100001,10;
对比上面的查询可以看到,limit的数据越往后查询花费的时间就越长
上面的对比不明显,那么我们下面查询的大点的数据
select id,username,age,word from demo limit 8000001,10;
这个时间是否有吓到你,如果不优化,分分钟你的网站就会崩掉
解决方法
看一下单查id的执行时间
select id from demo limit 8000001,1
把分页的代码修改成
select id,username,age,word from demo where id>(select id from demo limit 8000001,1) limit 10;
sql的执行效率提升了一半,已经提升很大