先说一下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
但这种写法适用于偏移量大的结果,实际使用要根据业务场景选择相应策略。