大数据分页优化

直接 limit 缺点

  1. limit 语句的查询时间和起始记录的位置成正比
    1. 记录很多的时候,不适合直接使用

优化

  • 使用主键索引加速分页查询

    使用了逻辑删除的表

  • id具有一连续性

  • 使用 where 子句限制 id 的方式最为合适

    select * from t_user where id > 3000000 and id <= 3000000+100;

主键值不连续的表

  • 利用主键索引加速,再做表连接查询

    select t.id, t.name from t_user as t — 提前将 id 用 where 子句查询出来 join (select * from t_user where id > 3000000 limit 100 ) as tmp on t.id = tmp.id;

业务上限定不可以查询早期数据