在php/mysql系統中,我們有一些配置值(大約200) - 這些大多數是布爾值或整數,並存儲諸如每頁結果數和頁面是否2或3列。這些都存儲在一個mysql表中,我們使用一個函數按照請求返回這些值,在某些加載的頁面上可能會有大約100個請求到這個配置表。隨着使用此係統的站點數量的增加,這意味着每秒可能會有數千個請求來檢索這些值。問題是這種方法是否有意義,或者是否最好每頁執行一次請求,並將所有配置存儲在一個數組中,並且每次都從這裏進行檢索。在數組中存儲或使用多個db查詢
1
A
回答
1
使用緩存,如memcache,APC或任何其他。加載設置一次,緩存它,並通過您的會話與單身人士對象分享。
即使保存了查詢緩存,也會浪費時間和資源來反覆查詢數據庫。而是在任何修改值的請求上,使內存中的緩存無效,以便下次有人從中請求值時立即重新加載該緩存。
1
如果啓用MySQL
查詢緩存,那麼選擇您的值的查詢將緩存在內存中,除非基礎表中的查詢或數據發生更改,否則MySQL
將從內存中立即給出答案。
這對於性能和可管理性都非常出色。
可以在會話之間重複使用查詢結果:這意味着,如果您有1000
會話,則不需要保留1000
數據副本。
+0
我們已啓用查詢緩存,並且此表格中的數據相當靜態,我認爲這可以很好地保存緩存 – robjmills 2009-06-01 11:16:41
0
您可能想要考慮使用memcache。我認爲這會比多個數據庫查詢(甚至是查詢緩存)更快,並且您不需要數據庫連接即可獲取它們。
您可能想要考慮將它們從平面文件加載到內存中,這可以讓您有機會版本控制您的配置值。
0
我會明確地建議爲此memcache。我們有一個類似的設置,它已經在該服務器上顯着地降低了資源使用率。
相關問題
- 1. 在C#中存儲查詢或在Postgres中使用存儲函數?
- 2. Bash:在數組中存儲sql查詢
- 3. 在SQLite中存儲/查詢多個值
- 4. 哪個更好?在DB中存儲文件或在DB中存儲其路徑?
- 5. 將結果存儲在PHP數組中,用於兩個查詢
- 6. PostgreSQL存儲函數與多個查詢
- 7. 使用存儲在數組中的_id從golang查詢mongodb
- 8. 使用子查詢或多個查詢?
- 9. 將hashmap存儲在存儲或db?
- 10. 使用存儲過程或查詢
- 11. Rails&MySQL:數組綁定---存儲在DB中--- []或---
- 12. 將數據集保存在內存或多個SQL查詢中
- 13. 將CI查詢存儲到數組中?
- 14. 使用CasperJS在一個數組中存儲多個DOM元素
- 15. 在python數組中存儲多個值?
- 16. 在int數組中存儲多個零
- 17. 在DDD中查詢多個存儲庫中的數據
- 18. 使用多個過濾器的數據存儲查詢
- 19. 在一個數組中的多個數組中存儲多個數組Python/Numpy
- 20. 使用查詢或存儲過程的兩個表中
- 21. 使用before_save存儲一個值在db
- 22. 在一個或多個AND查詢中使用多個OR
- 23. 在PHP中使用數組而不是大量的db查詢
- 24. 如何在Postgres中查詢數組存儲列(數組相交)
- 25. 在NodeJS中存儲來自多個MongoDB查詢的數據
- 26. CFloop查詢在數據庫中存儲多個值
- 27. 將用戶數據存儲在lucene中或查詢rdbms?
- 28. 將SQL查詢存儲到多維數組中
- 29. PHP/MySQL - 將查詢存儲到多維數組中
- 30. 用db在db中存儲會話
絕對聽起來像是最好的計劃,謝謝 – robjmills 2009-06-01 13:48:24