如果應用程序要求設置一個類似的結果,最近被要求,如何才能對ORM跟蹤哪些結果是陳舊的,並且可以從之前沒有使用太多的資源(內存)被重複使用或產生過多的建築複雜?ORM可以使用什麼策略來緩存數據,同時將複雜性降至最低?
2
A
回答
2
緩存失效是一個非常棘手的問題。您提出的基本案例似乎是數據庫的查詢緩存最容易處理的事情(頻繁的請求會將查詢保留在緩存中)。一旦緩存策略變得比這更復雜,大多數收益將來自使用單獨的鍵值緩存存儲手動管理緩存和緩存到期。
如果這類事情是您應用程序數據訪問的標準,並且您正在嘗試新潮時髦的新事物,那麼couchdb的mapreduce視圖可能會非常適合。
除了基本的備忘錄之外,我傾向於將ORM級別的緩存視爲相當挑剔和糟糕的計劃。
+1
我直接引用了像memcache之類的ORM級別之外的緩存(我是web dev),但任何鍵值存儲都應該可以工作。從本質上講,自動做ORM緩存將需要大量的東西,同時增加建築和錯誤數據庫應該做的重複。在大多數情況下,通過顯式的應用程序級緩存和更好的db索引等可以更好地獲得性能。 – 2009-08-22 19:00:14
1
當我需要知道本地數據是否與(遠程)服務器同步時,我會跟蹤事務。
所以之前的「提神」本地數據I「查詢交易歷史」,如果對有關(遠程)數據沒有發生任何交易,因爲最後的「刷新」,它仍然保持同步。
但我不知道它是否「儘量減少複雜性」。
相關問題
- 1. 降低複雜性
- 2. 組合函數以降低複雜性
- 3. 將分數降至最低
- 4. 將ZXing降至最低
- 5. 降低時間複雜度
- 6. UIImageView緩存,同時tableviewcell高度降低
- 7. 什麼是使ORM緩存無效的最佳策略?
- 8. 使用IQueryables緩存策略
- 9. 如何降低複雜度?
- 10. 緩存策略
- 11. 降低程序的時間複雜度
- 12. 爲什麼緩存使用最近使用(MRU)算法作爲逐出策略?
- 13. 降低數組中最大重複元素的複雜度
- 14. 技術來降低複雜性在遊戲編程
- 15. 什麼樣的緩存策略最適合這個問題?
- 16. 在數據庫和Redis緩存之間同步數據的最佳策略是什麼
- 17. 緩存常見查找數據 - 策略
- 18. 緩存策略查詢的數據
- 19. WCF/Silverlight/SQL數據庫緩存策略
- 20. 將文件附加/上傳至尚未保存注 - 此策略的最佳策略是什麼?
- 21. WCF REST(WebHttpBinding)可以使用PROGRAMMATIC輸出緩存策略嗎?
- 22. @ManyToOne字段應使用什麼緩存併發策略
- 23. Akamai緩存策略
- 24. NSURLRequest緩存策略
- 25. iOS緩存策略
- 26. ServiceStack緩存策略
- 27. 緩存策略,AFNetworking
- 28. 可複用性,可測試性,代碼複雜度降低和可展示性編程重要性
- 29. 複雜的查詢策略
- 30. 如何降低高圈複雜度,同時從
除非你自己構建ORM,否則這是一個奇怪的問題。你究竟想要做什麼? – Juliet 2009-08-22 18:16:36
要小心考慮您的ORM是否需要跨多個進程/機器運行......在這種情況下,緩存層會變得更加困難。 – 2009-08-22 20:04:34