# 分页查询
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 djoin ( 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 缺点:
- 只能连续页查询
- 需要自增的字段