mysql limit 优化
1.当取出的数据超过20%时,优化器不会使用索引,而是全表扫描;
2.limit和offset的问题,其实是offset的问题,它会导致mysql扫描大量不需要的行然后删掉
如:
select * from user limit 1000,10;
它是先查1010条,然后删除1000条;
可以试一试这种方法:
select * from user inner join (select id from user limit 1000,10) as t1 using(id)
只查索引,不查数据,得到id 再用id去查具体条目;
3.当数据没有删过的情况下,可以使用下面两种
select * from user where id between 50 and 100;
select * from user where id >50 order by id desc limit 50;