使用ActiveData 分页数据有重复的问题
在写一个分页数据时,已经使用了一个字段来做排序,结果出现部分数据丢失,部分数据重新显示在不同的页上。
最初判断为使用 ActiveData 不当造成的。对比之前正常的代码,并没有发现问题。经过排查,当去掉加上的排序规则后,发现数据又能够正常显示完整,初步认定为排序规则出错。
解决方案:给排序加上一个主键倒序。完美实现
原因:
通过分页查询的sql是分多次执行,可以看做成多条不同的sql。当数据量过多时,出现默认排序相同的多条数据。这时出现无序的情况,按照mysql的机制,会按照自身默认的排序重新查找数据,这时就出现了重复现象。
在这里记录一下,以后遇到类似问题
关于mysql自身机制这块原理,留着后面在梳理。
补充
发现一个比较好理解的案例
1、SQL分页排序的实现与分页数据重复问题