2010-05-19 76 views
2

我正在考慮是否需要一個完整的自動緩存或手動緩存。自動/手動緩存的優點和缺點

我們的自動方法是通過挖掘數據庫,查詢和格式化每個潛在和未來數據請求並將其保存到適當的緩存存儲(基於memcache或disk的)的解決方案。數據不會被無效,而只是被自動緩存更新操作覆蓋。

手動方法是讓每個請求檢查是否有包含所請求的數據的有效存儲和緩存的版本,如果沒有重新創建它並將其保存到相應的緩存存儲。

什麼是常識?大個子如何做到這一點?

非常感謝!

回答

1

答案當然是:取決於!如果您對數據的稀疏子集收到大量查詢,那麼實時緩存可能比緩存所有內容更好。例如,如果您使用複雜的查詢查詢酒店價格數據庫,並且只有少數酒店經常碰到點擊,那麼緩存每個酒店的每個搜索都沒有意義。只需等待用戶查詢一些內容,然後緩存該結果即可。

如果另一方面你有一個廣泛訪問的數據庫集,你可能想看看像物化視圖http://en.wikipedia.org/wiki/Materialized_view。這基本上使數據庫爲你所有的緩存,並實現全套查詢到一個「緩存」表。