Yii2 - 使用ActiveData 分頁數據有重複的問題

使用ActiveData 分頁數據有重複的問題

在寫一個分頁數據時,已經使用了一個字段來做排序,結果出現部分數據丟失,部分數據重新顯示在不同的頁上。

最初判斷爲使用 ActiveData 不當造成的。對比之前正常的代碼,並沒有發現問題。經過排查,當去掉加上的排序規則後,發現數據又能夠正常顯示完整,初步認定爲排序規則出錯。
解決方案:給排序加上一個主鍵倒序。完美實現

原因:
通過分頁查詢的sql是分多次執行,可以看做成多條不同的sql。當數據量過多時,出現默認排序相同的多條數據。這時出現無序的情況,按照mysql的機制,會按照自身默認的排序重新查找數據,這時就出現了重複現象。

在這裏記錄一下,以後遇到類似問題

關於mysql自身機制這塊原理,留着後面在梳理。

補充

發現一個比較好理解的案例
1、SQL分頁排序的實現與分頁數據重複問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章