我的数据库托管在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