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

Posted 搜云库技术团队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了坑,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,绝大部分核心的高清技术书籍都可以在这里找到!


以上是关于坑,MySQL中 order by 与 limit 混用,分页有BUG!的主要内容,如果未能解决你的问题,请参考以下文章

神坑!MySQL中order by与limit不要一起用!

切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑

Mysql order by与limit混用陷阱

mysql order by 与 limit 混用陷阱

MySQL优化:order by和limit

Mysql order by 不唯一字段与limit混用的坑