我知道這個問題已經回答了很多次。 事實上,如果你參考http://www.percona.com/files/presentations/ppc2009/PPC2009_mysql_pagination.pdf 你會得到答案。MySQL中高效而有效的分頁
但是,我對這種常見方法有疑問,如下所示。
如果你是指滑動18,考慮事件的順序如下:
- 客戶端獲取「第一頁」
- 與ID = 19存在於「第三頁」後,其thumb_up計數增加至98,從而將其推到「第一頁」
- 客戶端獲取「第二頁面」
然後,客戶端將錯過交ID = 19。我正在做一個移動應用程序,其中的項目緩存在客戶端(想象一個無限的滾動列表)。如果緩存沒有定期更新,那麼這個帖子將會被錯過一段時間!
確保客戶端永遠不會錯過任何項目的任何智能方式,尤其是在客戶端正在獲取可能由其他用戶同時更新的項目的情況下?
我想爲表中的每個項目強加一個唯一的「更新時間戳」作爲解決方案。但是,這需要某種形式的序列化來保持時間戳的唯一性,並且對於大量更新來說效果不佳。我們還需要確保時間戳是單調遞增的,否則項目可能會錯過。
eBay有這個問題,如果你按「結束最快」排序 - 在你瀏覽即將結束的時間,並移動下一頁時,可能已經創建了一個間隙。 – 2014-11-25 12:42:09