如何处理来自大型ResultSet的数据而不将它们全部加载到内存中



我的数据库托管在mysql服务器上&我正在用Java分析数据。

我的问题:执行'Select'查询后将返回2.5 GB的结果集。我不想把所有数据都加载到内存中。有什么方法可以让我连续检索数据吗?过程吗?

'按行限制'将不是一个选项,b/c这2.5 GB的数据被连接&从4个表中检索。因此,"按行限制"将大大增加我的总运行时间。

我已经尝试过statement.setFetchSize(50),但它似乎不像我预期的那样工作。

任何建议都将非常感谢!谢谢!

Statement stmt = readOnlyConn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);

stmt.setFetchSize (Integer.MIN_VALUE);

上面的代码解决了我的问题。谢谢你的帮助!

BlockquoteStatement stmt = readOnlyConn.createStatement(java.sql.ResultSet. xml)TYPE_FORWARD_ONLY java.sql.ResultSet.CONCUR_READ_ONLY);stmt.setFetchSize (Integer.MIN_VALUE);上面的代码解决了我的问题。谢谢你的帮助!

可以,但是如果你使用的是postgres,你还必须将自动提交关闭!(工作2h后实现=D)

查看postgres docs

相关内容

  • 没有找到相关文章

最新更新