JDBC中的setFetchSize()
来源:互联网 发布:未来大数据对中国影响 编辑:程序博客网 时间:2024/05/18 01:56
转载自:http://blog.csdn.net/seven_3306/article/details/9303879
在使用MySQL的JDBC时,如果查询结果集过大,使用一次查询,可能会出现Java.lang.OutOfMemoryError: Java heap space问题,因为DB服务器端一次将查询到的结果集全部发送到Java端保存在内存中而造成OOM。
MySQL JDBC需要一条SQL从数据库读取大量数据,而不发生JVM OOM,可以采用以下方法之一:
1、当statement设置以下属性时,采用的是流数据接收方式,每次只从服务器接收部份数据,直到所有数据处理完毕,不会发生JVM OOM。
3、设置连接属性useCursorFetch=true (5.0版驱动开始支持),statement以TYPE_FORWARD_ONLY打开,再设置fetch size参数,表示采用服务器端游标,每次从服务器取fetch_size条数据。
故采用如下方式就可以解决OOM问题:
在使用MySQL的JDBC时,如果查询结果集过大,使用一次查询,可能会出现Java.lang.OutOfMemoryError: Java heap space问题,因为DB服务器端一次将查询到的结果集全部发送到Java端保存在内存中而造成OOM。
MySQL JDBC需要一条SQL从数据库读取大量数据,而不发生JVM OOM,可以采用以下方法之一:
1、当statement设置以下属性时,采用的是流数据接收方式,每次只从服务器接收部份数据,直到所有数据处理完毕,不会发生JVM OOM。
setResultSetType(ResultSet.TYPE_FORWARD_ONLY);setFetchSize(Integer.MIN_VALUE);2、调用statement的enableStreamingResults方法,实际上enableStreamingResults方法内部封装的就是第1种方式。
3、设置连接属性useCursorFetch=true (5.0版驱动开始支持),statement以TYPE_FORWARD_ONLY打开,再设置fetch size参数,表示采用服务器端游标,每次从服务器取fetch_size条数据。
故采用如下方式就可以解决OOM问题:
ps = (PreparedStatement) con.prepareStatement("select * from bigTable", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);ps.setFetchSize(Integer.MIN_VALUE);ps.setFetchDirection(ResultSet.FETCH_REVERSE);
0 0
- JDBC中的setFetchSize()
- JDBC ResultSet setFetchSize
- JDBC基础-setFetchSize方法
- jdbc setFetchSize 原来是
- Oracle JDBC实现存在BUG(ResultSet::setFetchSize())?
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryEr
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize() setMaxRows()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- setMaxResults 和 setFetchSize
- java中的jdbc编程
- struts中的JDBC
- JDBC 中的一些技巧
- JSP中的JDBC
- JDBC中的close方法
- JDBC中的事务处理
- jdbc中的batch
- JDBC中的Batch
- 【NYOJ】[23]取石子(一)
- poj 2431 Expedition
- poj 1330 Nearest Common Ancestors
- 崔希凡javaWeb笔记day01~day03(2016年5月20日20:39:04)
- hdoj-5680-zxa and set
- JDBC中的setFetchSize()
- 内部类、异常知识点总结
- 设计模式 - Adapter模式
- nyoj 163 Phone List && poj 3630 Phone List <字典树 动态建树&&静态建树>
- 认真学spring官网,很容易找到spring4的jar包下载位置
- Java 设计模式 -- 职责链模式
- 用纯css改变下拉列表select框的默认样式
- dos命令大全
- Python资料锦集