# 分页查询

2 min read
Table of Contents

分页查询

select * from data limit 0, 10;

直接进行分页查询,从 第 0 条开始,查 10条数据,会出现一个问题,可能查询出的数据不是 id 1-10。因为在优化器选择索引时,如果表内有其他索引,查询就可能会走已经创建的索引,而不是主键索引,导致查出的前十条数据不是 根据 id 排序的前十条。

解决方法就是去除表中的索引

查第 1000 万页

select * from data limit 10000000, 10;

数据量越大,查询速度越慢。

覆盖索引 +子查询

# 覆盖索引
select id from data limit 10000000, 10;
# 子查询
select d.*
from data d
join (
select id from data limit 10000000, 10
) ton d.id = t.id;

标签记录

select * from data where id > 10000000 order by id limit 10;

10000000 是上次查询的最后一条 id 缺点:

  • 只能连续页查询
  • 需要自增的字段
My avatar

Thanks for reading my blog post! Feel free to check out my other posts or contact me via the social links in the footer.


More Posts

Comments