我有一个数据库,其中有大约 15 万条数据记录,表上有一个主键。每条记录的数据大小将小于 1kB。从 DB 记录构造 POJO 的处理时间大约需要 1-2 秒(有一些业务逻辑需要太多时间)。这是只读数据。因此,我计划实现缓存数据。我想做的是。将数据加载到子集中(每次 200 条记录)并创建一个线程来构造 POJO 并将它们保存在哈希表中。在加载缓存时(当我启动应用程序时),用户将看到一个等待标志。对于将数据存储在 HashTable 中是一个问题,我实际上将处理后的数据存储到另一个数据库表中(将 POJO 编码为 xml)。 我使用第三方 API 从数据库加载数据。加载记录后,我将加载数据,我必须为加载的数据加载关联,然后为在顶层找到的关联加载关联。这就像加载家谱。
- 我不能使用 Hibernate 或任何 ORM 框架,因为我正在使用第三方 API 来加载数据库本身(它是一个产品)附带的数据。此外,我认为加载一次数据不是一个大问题。
- 如果可以微调业务逻辑,我就不会在这里问这个问题。
按需缓存数据是一种选择,但我正在尝试看看是否可以做得更好。
如果您有更好的想法,请告诉我。谢谢。/
最佳答案
Suggest me if there is a better idea that you are aware of.
是的,修复业务逻辑,这样每条记录就不会花费 1 到 2 秒。时间长得离谱。
在您这样做之前,分析您的应用程序以确保它是真正导致记录加载缓慢的业务逻辑,而不是其他原因。 (例如,它可能是病态的数据结构,或数据库问题。)
一旦您解决了记录加载缓慢的根本原因,缓存只读记录仍然是个好主意,但您可能不需要预加载缓存。相反,只需按需加载记录。
关于java - 缓存 java 应用程序的只读数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120851/