一般分页查询
优化
先使用范围查询定位 id (或者索引),然后再使用索引进行定位数据,能够提高好几倍查询速度。即先 select id,然后再 select *。
select * from orders_history where type=8 limit 1000,10;
使用子查询优化
select * from orders_history where type=8 and id >=( select id from orders_history where type=8 limit 100000,1) limit 100;
缺点:适用于id递增
使用id限定优化
-- 写法一
select * from orders_history where type=2 and id between 1000000 and 1000100 limit 100;
-- 写法二
select * from orders_history where id >= 1000001 limit 100;
-- 写法三 某些 mysql 版本不支持在 in 子句中使用 limit
select * from orders_history where id in (select order_id from trade_2 where goods = 'pen') limit 100;
缺点:适用于id连续递增