分页查询优化

自增且连续主键的分页查询

避免前n条记录的读取[https://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html](mysql manual),可以采用:

select * from t1 where id >99000 limit 2;

要求主链连续且自增,否则很多时候不适用。

非主键字段排序的分页查询

可能不走索引

select * from t1 order by a limit 99000,2;

优化:关键是让排序时返回的字段尽可能少,所以可以让排序和分页操作先查出主键,然后根据主键查到对应的记录

select * from t1 f inner join (select id from t1 order by a limit 99000,2)g on f.id = g.id;
原文地址:https://www.cnblogs.com/hainingwyx/p/14529661.html