先说结论:
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条是一样的~~
没办法,换个一定不会重复又跟时间对应的字段来排序吧。