分页查询优化

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

避免前n条记录的读取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;

   转载规则


《分页查询优化》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
join优化 join优化
关联查询Nested-Loop Join思想 一次一行循环:从驱动表中读取行并取到关联字段,根据关联字段在被驱动表取出满足条件的行(使用索引),然后取两张表的结果合集。manual 在关联字段有索引时,才会使用 NLJ,如果没索引,就会使
2021-03-13
下一篇 
order/group by优化 order/group by优化
order by 原理按照排序原理分manual,MySQL 排序方式分两种: 通过有序索引直接返回有序数据:Using index 通过 Filesort 进行的排序:Using filesort Filesort是内存排序还是磁盘排
2021-03-13
  目录