分页查询
分页查询
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)
t on d.id=t.id;
标签记录
select * from data
where id >10000000
order by id
limit 10;
10000000 是上次查询的最后一条 id
缺点:
- 只能连续页查询
- 需要自增的字段
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Pluto404`s blog!