如果应用程序要求设置一个类似的结果,最近被要求,如何才能对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