我有一個我想要顯示總計的集合,並且想法是爲我需要的每個總計使用緩存。不過,我也需要深入研究數據集。所以最有可能的是我將不得不加載收藏。那麼我還應該使用緩存還是隻使用計算?Rails計數器緩存與計算
4
A
回答
3
答案取決於集合的大小。如果集合非常大(1000或物品),那麼緩存可能是一個好主意。如果它只有少數幾個,並且你在表上有索引以快速找到相關的行,那麼緩存可能不是必需的,特別是如果你必須鑽取集合。
正如所有這些類型的問題一樣,正確的答案通常是「取決於」。這很大程度上取決於您的要求和數據等。
3
正如Stephen ODonnell所說,「...取決於收集的大小。」但是,您還需要考慮每頁將執行此計算的次數。例如,如果您正在創建博客應用程序,並且帖子/索引頁面顯示10條博客帖子,每篇博文的底部都有「155條評論」,那麼通過使用計數器緩存可以避免很多數據庫調用。
我建議只用活動記錄搜索來嘗試它,但添加「包含」選項。假定Post#123有50條評論。
p = Post.find_by_id(123)
p.comments.each do {|c| puts c } #Do something meaningful instead...
將生成51個數據庫調用,其中1個用於Post,每個評論用1個。相反,你可以這樣做:
Post.find_by_id(123, :include => [:comments])
現在,它會自動查詢的意見,當你搜索後,倒塌51個查詢到1
相關問題
- 1. Rails計數器緩存
- 2. Rails緩存計數器
- 3. 緩存與重新計算
- 4. Redis和Rails計數器緩存列
- 5. Rails計數器緩存及其實現
- 6. Ruby on Rails計數器緩存錯誤
- 7. 多個計數器緩存列與aasm
- 8. 計數器緩存更新
- 9. MongoDB緩存計數器
- 10. 計數器緩存和will_paginate
- 11. iPhone硬計算和緩存
- 12. 緩存和計算映射
- 13. 高速緩存計數器列不保存重新計算的值
- 14. 緩存數據與重新計算PHP中的數據
- 15. Linq2SQL計數緩存?
- 16. Ruby on Rails - 計數器緩存在生產上不起作用
- 17. Rails 4.1計數器緩存沒有更新
- 18. 如何在Rails中實現計數器緩存?
- 19. Ruby/Rails計算
- 20. 120K記錄的重新計算計數器緩存[軌道/ ActiveRecord的]
- 21. 訪問ruby計數器緩存
- 22. 多態關係和計數器緩存
- 23. c# - 計算器 - 用浮點數計算
- 24. 緩存Rails 3模型中的複雜計算
- 25. 本地數據存儲與科曼計算結構中的紋理緩存進行科學計算
- 26. Rails中的計時頁面緩存
- 27. 計算和緩存文件夾大小
- 28. 如何計算緩存開銷?
- 29. 如何在軌中緩存計算列?
- 30. 高速緩存計算值的方法
那麼每個集合很可能是在1000更有可能的是50 -200行。我想我會先嚐試最簡單的方法! – Cameron 2009-08-05 13:38:10