java - 从数据库加载多个(很多)对象,将其保存在ehcache中并使用主键查询

标签 java oracle ehcache

我必须处理一个 xml 文件,为此我需要使用单个表中的主键来获取大约 4k 个对象。我正在使用EhCache。我有几个疑问如下:

1) 如果我根据 Id 逐行查询并将其保存在 Cache 中,会花费很多时间。我可以在初始时间点查询并将整个表保存在 EHCache 中,并可以在稍后的处理中使用主键查询

2) 我不想使用查询缓存。因为我无法一次加载 4k 对象并循环它以查找正确的对象。

我正在寻找最佳解决方案,因为现在我的过程需要大约 2 小时(它也涉及其他处理)

感谢您的热心帮助。

最佳答案

您可以读取整个表并将其存储在 Map<primary-key, table-row> 中以减少数据库连接的开销。

我猜是TreeMap可能是最好的选择,它使搜索元素更快。

Ehcache非常适合处理并发,但如果您使用单个进程读取 xml,您甚至不需要它(只需将 Map 存储在内存中)。

关于java - 从数据库加载多个(很多)对象,将其保存在ehcache中并使用主键查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918257/

相关文章:

java - 无法从始终为空的包中获取值

java - thymeleaf 和 session

java - Oracle Webcenter Spaces 和 Internet Explorer 9

sql - 从SQL中的一个左属性中获取多个属性

java - JPA Native Query to tables from different schema in Oracle

java - 缓存整个表

java - jSoup 将 DIV 标签中的文本提取到字符串

java - SingletonEhCacheRegionFactory 与 EhCacheRegionFactory

java - 如何防止缓存的返回值在spring可缓存中被更改

Java 抽象类或静态实用程序类设计选择