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;

原文地址:https://www.cnblogs.com/lixiuyuan999/p/6382371.html