limit offset较大时,
select * from user limit 10000,10 和
select * from user limit 0,10
执行效率差别较大。原因是limit10000,10的意思扫描满足条件的10010行,扔掉前面的10000行,返回最后的10行(全表扫描)。
优化:
select * from (
select id from user
order by id limit 10000,10
) a
left join user b on a.id=b.id
注意,如果有where字段需做复合索引,否则的话效果提升不明显。
select * from user limit 10000,10 和
select * from user limit 0,10
执行效率差别较大。原因是limit10000,10的意思扫描满足条件的10010行,扔掉前面的10000行,返回最后的10行(全表扫描)。
优化:
select * from (
select id from user
order by id limit 10000,10
) a
left join user b on a.id=b.id
注意,如果有where字段需做复合索引,否则的话效果提升不明显。