【发布时间】:2013-05-31 15:20:22
【问题描述】:
我的数据库托管在 mysql 服务器上,我正在使用 Java 来分析数据。
我的问题:执行“选择”查询后将返回 2.5 GB 的结果集。我不想将所有数据加载到内存中。那么有什么方法可以让我不断地检索数据并对其进行处理?
'limit by rows' 将不是一个选项,b/c 这 2.5 GB 的数据是从 4 个表中连接和检索的。所以“按行限制”会大大增加我的总运行时间。
我已经尝试过 statement.setFetchSize(50),但它似乎没有像我预期的那样工作。
任何建议将不胜感激!谢谢!
【问题讨论】:
-
我会增加你的堆大小。如果您需要处理 2.5 GB 的数据,那么拥有 8-32 GB 的内存听起来并不多。