分頁出現數據重複的解決方案

用戶量急劇上升中,偶爾會發現這麼一個問題,就是下一頁的數據中總會出現上一頁的幾條數據。  爲什麼會造成這個問題呢?用戶在查詢第一頁的時候,停留了一下,然後在這段時間內 又有兩個用戶註冊了,然後請求第二頁的數據的時候 排序的時候 兩個新用戶排在了最前面(按照註冊時間排序) 所以第二次排序的時候就變成了第二頁的數據。

那如何解決這個問題呢?

在每次請求的時候都帶上前臺最後一條數據的註冊時間,然後查詢的時候添加一個條件:註冊時間小於該時間,這樣每次返回的都只需要返回第一頁的數據就可以了 。上拉刷新的時候帶上當前時間即可,

 

分頁邏輯天然就有這個問題,最好的方式是接續查詢,用上一頁最後一條記錄作爲查詢下一頁的條件,這樣查出來既不會多也不會少

    綜上,分頁查詢時,採取哪種sql語句的形式,主要看對分頁查詢數據出現缺失或者重複時的容忍程度。

(1)如果完全不在意數據是否有缺失或者重複,無需進行任何排序。

(2)如果不考慮數據有刪除、插入對查詢結果集造成影響的情況,則採用排序的方法可以有效避免分頁查詢結果重複或者缺失的情況,最好採用唯一列進行排序。

(3)如果要避免有刪除、插入對查詢結果集造成影響,則需要利用上一次分頁查詢結果作爲下一次查詢的條件,不斷對查詢結果進行過濾,來確保得到正確的查詢結果。
--------------------- 
作者:kkk6285137 
來源:CSDN 
原文:https://blog.csdn.net/kkk6285137/article/details/75501681 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

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