今天解决了一个bug 是分页的时候数据一样导致翻页重复的问题
查了一下网上
原因:
mysql对limit的解释
如果多个行在列中具有相同的值ORDER BY,则服务器可以按任意顺序自由返回这些行,并且根据总体执行计划可能会有所不同。换句话说,这些行的排序顺序对于无序列是非确定性的。
原因的原因:
在MySQL 5.6版本,优化器在遇到order by xxx limit x,x 时,会做一个优化,使用优先队列,来进行排序,这样的好处在于在排序过程中,仅保留需要的n条数据即可。
解决方法:
- order by后加一个唯一字段(id)进行排序
- 给order by字段加上索引