优化时间: - )
简单的内存缓存有两个缺陷:
所以这是不行的。
我正在考虑构建某种分析器,以找出需要为给定实体检索哪些数据,即使是大型形式,也请求缓存在带外加载所需的数据。 / p>
步骤如下:
您对此方法有何看法?我是否遗漏了一些众所周知的数据访问模式,可以在这种情况下应用?
更新1 :忘记提及整个处理是单线程的,这确实会大大限制选项。
答案 0 :(得分:3)
你说:
简单的内存缓存有两个缺陷:
- 它可能会溢出,因为我们正在讨论大量实体
- 它不保证在缓存中找到所需的实体,也无法查询可用性或被要求“预加载”自身。
醇>
也许我完全误解了你的问题和需求,但这在许多层面听起来都不正确:
Map
构建自己的解决方案,您仍然可以执行此操作...)。< / LI>
答案 1 :(得分:2)
基本上你正在尝试缓存数据库查询。当您开始使用缓存时,数据库状态可能已更改。这是数据不一致的一个方法。
作为替代方法,请检查您是否可以优化数据库。在&lt;中有一个数据库回答查询是非常可能的。 10毫秒。您甚至可以拥有索引视图等,并定期访问它,以便将其缓存在内存中。
作为另一种选择,请考虑这一点:通过预取数据,工作总量不会减少。无论是否排队,实体都必须等待预取。既然必须完成工作,您可以在队列工作进程中执行此操作吗?考虑增加工作进程的数量,这样您就可以同时处理更多队列。
编辑:正如您的评论所说,您已经绑定了一个工作线程: