我有一个包含200多个项目的大清单,这些项目将从数据库中提取并每天在一个简单的基于控制台的Java App中处理。
最好的方法是什么?我应该在小集中获取列表并处理它,还是应该将完整列表提取到数组中并进行处理。保持阵列意味着巨大的内存需求。
注意:只需处理一列。
处理意味着,我必须将该字符串作为SOAP请求传递到其他位置。 20000项是长度为15的字符串。
答案 0 :(得分:1)
这取决于。 20000并不是一个很大的数字。如果您只处理20000个短字符串或数字,则内存要求不是那么大。但如果它的20000张图像有点大。
总是需要权衡。多个数据块意味着多次访问数据库。但一次旅行意味着更多的记忆。哪个更重要?您的数据也可以分块吗?或者您是否需要示例记录1才能处理记录1000。
这些都是需要考虑的事情。希望他们能帮助您找到最适合您的设计。
答案 1 :(得分:0)
纠正我如果我错了,一点一点地取出它,并为它提供回滚操作。
答案 2 :(得分:0)
如果作业可以在数据库级别完成,我会使用SQL sripts,如果这是不可能的,我可以建议你加载有两列的小数据,如ID列和需要的列被处理。
这将使您在此过程中获得更好的性能,如果您遇到任何崩溃,您将不会丢失所有已处理的数据,但在崩溃的情况下,您需要知道哪些数据集已处理,哪些不能处理,这可以使用第3列或每轮保存最后处理的ID。