用limit offset ,时并不是先跳过再查询
而是 ,先查询,再跳过
limit 100w,10 先把100w取出来,然后跳过前100w行,
所以大数据分页用limit很慢
select id,name from lx_com 5000000,10 先查询出来5000000
select id,name from lx_com inner join (select id from lx_com limit 5000000,10) as tmp using(id); 先用索引覆盖,查询到第500w行,在去关联下面的数据
分析: 优化思路是 不查,少查,查索引,少取.
我们现在必须要查,则只查索引,不查数据,得到id.
再用id去查具体条目. 这种技巧就是延迟索引.延迟关联磁盘数据