我正在實現一個以分頁格式顯示數據的php頁面。我的問題是這些數據是實時更改的,所以當用戶請求下一頁時,我提交最後一個id並執行查詢,以便實時更改值,從最後一個id順序檢索更多10行。比如我有20行:SQL - mantain排序順序,用於在實時更改時分頁數據
Id 1 col_real_time 5
Id 2 col_real_time 3
Id 3 col_real_time 11
等
我得到col_real_time
升序排列數據,所以結果是
id 2, id 1, id 3
現在,在實時ID用戶前col_real_time
29 2的變化發送下一頁的請求,用戶現在發送請求下一個結果,因爲id 2現在是29他已經看到它。
我該怎麼辦?
現在,在實時ID 2變化
我只想回顧前30個實時數據行,然後其他行我可以正常排序(在列id沒有變化)顯示。爲此,您認爲臨時表是很好的解決方案嗎?我可以將30個實時結果存儲在臨時表中,然後正常讀取其他行,而不考慮保存在臨時表中的id,以避免重複。 – paganotti
正如我所說的,使用純SQL進行此操作並不會有效。除了每次用戶點擊頁面時創建數據庫對象的明顯緩慢之外,大多數SQL數據庫都針對寫入讀取進行了優化。此外,沒有我知道的數據庫可以優化或緩存創建對象的查詢,這意味着您的查詢將始終以最可能的速度運行。將數據保存到PHP變量中會更好。 – monitorjbl
我認爲它可能分頁實時保存時間戳的請求第一次加載新的數據,然後下一個頁面請求我可以在發佈數據中發送保存的原始時間戳,所以我得到的SQL行不是最近創建(當前時間>原始時間戳)並考慮在原始時間戳後刪除的行。所以,我得到所有的歷史記錄行。你認爲它在這種模式下工作嗎? – paganotti