vlambda博客
学习文章列表

坑,MySQL中 order by 与 limit 混用,分页有BUG!

比如现在有一张user表,表结构及数据如下:

注 意

文末放有:1000多本 技术电子书

坑,MySQL中 order by 与 limit 混用,分页有BUG!

1、查询第一页数据时:

坑,MySQL中 order by 与 limit 混用,分页有BUG!

2、查询第四页数据时:

坑,MySQL中 order by 与 limit 混用,分页有BUG!

坑,MySQL中 order by 与 limit 混用,分页有BUG!

这里我们查看下对应SQL的执行计划:

坑,MySQL中 order by 与 limit 混用,分页有BUG!

可以确认是用的文件排序,表确实也没有加额外的索引。所以我们可以确定这个SQL执行时是会找到limit要求的行后立马返回查询结果的。

不过就算它立马返回,为什么分页会不准呢?

官方文档里面做了如下说明:

那这种情况应该怎么解决呢?

官方给出了解决方案:

blog.csdn.net/qiubabin/article/details/70135556


推荐 发现 一个  GitHub  书籍仓库
https://github.com/itdevbooks/pdf

这个整理了1000多本 常用 技术书籍PDF,绝大部分核心的高清技术书籍都可以在这里找到!