我的数据库托管于mysql服务器&我正在使用Java来分析数据。
我的问题:执行'Select'查询后,将返回2.5 GB的结果集。我不想将所有数据加载到内存中。那么有什么方法可以不断检索数据和处理它?</ p>
'按行限制'不是一个选项,b / c此2.5 GB数据已加入&amp;从4个表中检索。所以'按行限制'会增加我的总运行时间。
我已经尝试过statement.setFetchSize(50),但它似乎没有像我预期的那样工作。
任何建议都将非常感谢!谢谢!
答案 0 :(得分:1)
Statement stmt = readOnlyConn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE的);
上面的代码解决了我的问题。谢谢你的帮助!
答案 1 :(得分:0)
BlockquoteStatement stmt = readOnlyConn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY); stmt.setFetchSize(Integer.MIN_VALUE的); 上面的代码解决了我的问题。谢谢你的帮助!
是的,但如果您使用的是postgres,您还必须关闭自动提交! (工作2小时后实现= D)