好的,當涉及到在mysql中進行分頁時,最佳做法是什麼。讓我更加清楚地說,假設我有一個特定的時間,我有2000條記錄,並且有更多的記錄被插入。而且我一次顯示25個,我知道我必須使用限制來通過記錄進行分頁。但是,我應該爲我的記錄總數做些什麼?每次用戶點擊以請求接下來的25條記錄時,我是否會記錄這些記錄?請不要直接告訴我答案,而應該指向正確的方向。謝謝!用於分頁的MySQL查詢性能
2
A
回答
0
最簡單的解決方案是在插入新記錄時繼續正常使用結果集。據推測,每次顯示頁面將使用查詢看起來像以下:
SELECT *
FROM yourTable
ORDER BY someCol
LIMIT 25
OFFSET 100
當用戶頁面來回,如果有新的數據進來,有可能是某個網頁可能會從它是什麼改變先前。從邏輯的角度來看,這並不壞。例如,如果您有按字母順序排列的產品列表並且出現了新產品,則用戶將以相當不錯的方式收到此信息。
至於計數,只要有數據支持添加新頁面,您的代碼就可以移動到下一頁。添加新記錄可能意味着需要覆蓋整個表的更多頁面,但它不應該影響用於確定何時停止允許頁面的邏輯。
如果你的表有一個日期或時間戳列表示添加記錄的時間,那麼你可能實際上可以將整個結果集限制在一個快照中。在這種情況下,您可以防止新數據進入給定會話。
0
3 sugggestions 1.只刷新數據網格,同時通過ajax(或)存儲計數在會話中選擇搜索參數的下一個按鈕。 2.使用高級的memcache可以在所有用戶之間共享。根據過濾器參數生成唯一的密鑰並保持計數。所以你不會碰到數據庫。當新記錄被添加時,您需要清除現有的memcache密鑰。這需要memache運行。 3.創建一個索引,如果你點擊數據庫來獲取計數。對性能沒有太大影響。
相關問題
- 1. DB2分頁查詢性能
- 2. Mysql的,樹,分層查詢,性能
- 3. MySQL性能查詢
- 4. MySQL查詢性能
- 5. MySQL查詢性能 -
- 6. Mysql性能查詢
- 7. Mysql查詢性能?
- 8. 查詢性能 - MySQL
- 9. MySQL查詢性能
- 10. MySQL查詢排序/分組性能
- 11. MySQL的分頁查詢
- 12. MySQL查詢的性能
- 13. 用於分組數據的MySQL查詢
- 14. MySQL SELECT查詢性能
- 15. MySQL查詢性能提升?
- 16. MySQL查詢優化性能
- 17. 提高MySQL查詢性能
- 18. mysql查詢性能不高
- 19. MySQL查詢提高性能
- 20. Mysql查詢性能低下
- 21. 查詢測試MySQL性能
- 22. MySQL查詢性能限制?
- 23. 提高MySQL查詢性能
- 24. MySQL查詢性能改進?
- 25. MySQL查詢性能提高
- 26. 優化查詢性能,MySQL
- 27. MySQL查詢性能改進
- 28. MySQL查詢性能很慢
- 29. MySQL - 提高查詢性能
- 30. mysql子查詢性能
謝謝!但我更關心表現。我應該每次都閱讀嗎?大公司如何做到這一點。每當用戶轉到下一頁時,我認爲他們不會計數! – Jonathan
@Jonathan你甚至不需要計算AFAIK。只需選擇一個頁面大小並嘗試查詢。當你沒有收到任何東西時,你知道你已經超過了桌子的大小。無論如何,正如你指出的那樣,桌子的大小是不斷變化的。 –
的確如此,但我該如何向用戶展示他們正在查看的頁面? – Jonathan