mysql limit分页(偏移量)过大时优化问题

先说一下limit分页语法

select * from user_address limit 100000,10

limit后跟两个参数,第一个参数为从第几个数据开始,第二个参数为取多少个数据。

第一个参数也叫偏移量,初始值是0

如果数据量很小,这么写分页当然没问题,但是当数据量大起来的时候,查询速度就会慢很多。

如:select * from user_address limit 100,10 查询用时0.011S

select * from user_address limit 100000,10 查询用时0.618S

结果可看的出来,便宜量大起来时查询速度就会变慢,那么优化一下写法。

select * from user_address where id >= (select id from user_address order by id limit 100000,1) limit 10   查询用时0.068S

但这种写法适用于偏移量大的结果,实际使用要根据业务场景选择相应策略。

猜你喜欢

转载自blog.csdn.net/qq_39404258/article/details/106333205