-- 以該查詢為例 select * from table where field='' limit n,m
假設該查詢走了索引,該查詢會查詢出前n + 1條數據,根據條件去掉前n條,如果n太大,則會有多次回表操作導致查詢效率降低
優化方式
如果單表數據量比較大,可通過減少回表次數提高效率,所以可以對上面的查詢語句做下簡單的修改
select * from table a inner join (select id from table where where field='' limit n,m) b on a.id=b.id
如果每頁分頁數據量不大,也可以用子查詢,如果m值太大,不建議使用,可能會導致索引失效
select * from table where id in (select id from (select id from table where where field='' limit n,m) b)