0

我有一个包含超过 20000 个项目的大列表,这些项目要从数据库中获取,并每天在一个简单的基于控制台的 Java 应用程序中进行处理。

最好的方法是什么。我应该以小集合的形式获取列表并对其进行处理,还是应该将完整的列表获取到数组中并进行处理。保存在数组中意味着巨大的内存需求。

注意:只有一列要处理。

处理意味着,我必须将该列中的字符串作为 SOAP 请求传递到其他地方。20000 个项目是长度为 15 的字符串。

4

3 回答 3

1

这取决于。20000并不是一个很大的数字。如果您只处理 20000 个短字符串或数字,则内存需求不会那么大。但如果是 20000 张图像,那就有点大了。

总是有一个权衡。多个数据块意味着多次访问数据库。但是一次旅行意味着更多的记忆。哪个对你更重要?您的数据也可以分块吗?或者您是否需要例如记录 1 才能处理记录 1000。

这些都是需要考虑的。希望他们能帮助您找到最适合您的设计。

于 2012-06-19T04:23:53.773 回答
0

纠正我如果我错了,一点一点地获取它,并为它提供一个回滚操作。

于 2012-06-19T04:23:47.520 回答
0

如果这项工作可以在数据库级别完成,我会使用 SQL 脚本来完成,如果这不可能,我可以建议您加载具有两列(如 ID 列和需要处理的列)的小块数据。

这将使您在此过程中获得更好的性能,如果您有任何崩溃,您不会丢失所有已处理的数据,但在崩溃情况下,您需要知道哪些数据集已处理,哪些未处理,这可以使用第三列完成或通过保存每轮最后处理的 Id。

于 2012-06-19T04:27:41.587 回答