MySQL分页排序中的坑

今天项目提测,被测出了一个奇怪的bug,第一页最后一条数据和第二页的第一条数据重复了,并且神奇的丢失了一个条数据,下面开始来分析一下这个场景。

MySQL分页排序中的坑_第1张图片

第一页

MySQL分页排序中的坑_第2张图片

第二页

场景为对一些作业进行按时间排序,但是有的作业时间是相同的。

对代码进行查看发现,代码并没有什么问题,只是简单的查询全集并按时间排序分页返回给前端。

所以去看一看mysql对limit的解释,从官方文档中发现了这样一句话

如果多个行在列中具有相同的值ORDER BY,则服务器可以按任意顺序自由返回这些行,并且根据总体执行计划可能会有所不同。换句话说,这些行的排序顺序对于无序列是非确定性的。

根据这句话我们可以发现,在order by的值相同时,返回的顺序不一定一致。

你可能感兴趣的:(mysql数据库,java编程,mysql分页)