先说结论:
mysql 5.1.72-log版本中,如果用于排序的字段的值相同,使用limit进行分页处理是可能出现数据的丢失和重复。
今天运营同学反馈了个问题,从后台导出的记录结果不正确。经过排查,发现是导出第5000和第5001条数据重复了,而正确的第5001条数据丢失。
由于导出功能是用limit n*1000,1000进行处理的,怀疑limit有异常。
google一下, 发现老外有报过这个bug http://bugs.mysql.com/bug.php?id=69732,不过别人的版本是 5.6
我才 5.1.72-log。
不过按老外的思路验证查看了数据,果然发现我用于排序的时间字段, 第5000条跟第5001条是一样的~~
没办法,换个一定不会重复又跟时间对应的字段来排序吧。

本文详细介绍了在MySQL5.1.72-log版本中,当用于排序的字段值相同时,使用limit进行分页处理可能会导致数据丢失或重复的问题。通过实例分析,本文提供了解决方法,建议在排序字段值相同时,更换另一个与时间对应的字段进行排序以避免问题。
1746

被折叠的 条评论
为什么被折叠?



