我必须处理一个xml文件,为此我需要使用它来自单个表的主键来解决约4k个对象。我正在使用EhCache。我的问题如下:
1)如果我基于Id逐行查询并将其保存在Cache中,则需要花费大量时间。我可以在初始时间查询并将整个表保存在EHCache中,并可以在后续处理中使用主键查询
2)我不想使用查询缓存。因为我无法一次加载4k个对象并将其循环以找到正确的对象。
我正在寻找最佳解决方案,因为我的流程大约需要2个小时(它还涉及其他处理)
感谢您的帮助。
答案 0 :(得分:1)
您可以阅读整个表并将其存储在Map<primary-key, table-row>
中,以减少数据库连接的开销。
我认为TreeMap
可能是最佳选择,它可以更快地搜索元素。
Ehcache
非常适合处理并发,但如果您使用单个进程读取xml,则甚至不需要它(只需将Map
存储在内存中)。