【发布时间】:2013-04-20 13:43:42
【问题描述】:
我在尝试进行大查询时收到此错误。
java.lang.OutOfMemoryError: Java heap space
我搜索并发现将 setAutoCommit(false) 和 setFetchSize 方法应用于我准备好的语句可能有助于处理大查询。 但是,当我使用它时,我收到了这个错误。
java.sql.SQLException: Illegal value for setFetchDirection().
处理大型查询的正确和简单的方法是什么?
使用 setFetchSize 的正确方法是什么?
【问题讨论】:
-
使用示例代码提供建议会更容易。不过,这种事情最常见的答案是将查询分解成更易于管理的块。您真的需要一次获得所有这些数据吗?
-
在
SQL控制台上运行相同查询时得到多少行,也可以尝试为java 增加heap_size -
@Simonatmso.net - 恐怕我不能分享。但我能说的是查询字符串没有优化,有些可怕。太糟糕了,修改它并不容易(在我开始工作之前它已经很糟糕了;P)。
-
@Akash 我也尝试过“LIMIT 0,1”,但仍然无法查询。我会检查 heap_size。对不起,我忘了提到我使用 java、JDBC 和 mysql。
标签: java mysql heap-memory large-query