如何用java jdbc 向数据库表插入大数据量
来源:互联网 发布:单片机一秒延迟怎么写 编辑:程序博客网 时间:2024/05/22 04:38
jvm:-Xmx1024m
size = 1000000,可以插入成功。
如果再为size增大一个数量级,还是OutOfMemoryError,这时内存已经不好再增加分配了
批量处理本来是为了提高性能,但是太大的数据提交,因为堆的膨胀,堆的寻址会造成性能反而下降。
PreparedStatement加executeBatch方法可以更快,主要想提高预编译sql文件的次数,从而达到提高效率。
如果是为了事务处理,不妨用个变通的办法,建立临时表,导入数据,还是可以用到addBatch,比如每100条一个批次。
然后在另外一张表有个记录,记录是否全部导入成功的标志。
基本思路是利用两段提交理论
------------------------------
size = 1000000,可以插入成功。
如果再为size增大一个数量级,还是OutOfMemoryError,这时内存已经不好再增加分配了
批量处理本来是为了提高性能,但是太大的数据提交,因为堆的膨胀,堆的寻址会造成性能反而下降。
PreparedStatement加executeBatch方法可以更快,主要想提高预编译sql文件的次数,从而达到提高效率。
如果是为了事务处理,不妨用个变通的办法,建立临时表,导入数据,还是可以用到addBatch,比如每100条一个批次。
然后在另外一张表有个记录,记录是否全部导入成功的标志。
基本思路是利用两段提交理论
------------------------------
public class App {public static void main(String[] args) throws Exception {Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "marshal", "password");PreparedStatement preparedStatement = connection.prepareStatement("insert into addbatch_test(id,name) values(?,?)");int size = 1000000;for (int i = 0; i < size; i++) {preparedStatement.setInt(1, i);preparedStatement.setString(2, "n" + i);preparedStatement.addBatch();}preparedStatement.executeBatch();preparedStatement.close();connection.close();}}
阅读全文
0 0
- 如何用java jdbc 向数据库表插入大数据量
- 如何用C#向ACCESS数据库插入图片?
- java jdbc向数据库插入大量数据
- 如何用常规手段优化大数据量网页加载速度
- jsp中,如何用JDBC连数据库
- 如何用jdbc访问MS Access数据库
- 如何用JDBC连接数据库操作
- 如何用JDBC连接到数据库
- 如何用JAVA实现在ACCESS表中插入对象?
- 使用JDBC 插入向数据库插入对象
- 如何用Perl向MySQL中插入数据
- JDBC:大数据量插入的三种方法比较
- 利用JAVA向Oracle数据库中插入大对象
- 在JAVA中如何用JDBC驱动连接MS SQL数据库
- jdbc向Oracle数据库插入系统时间
- JDBC之向数据库中插入图片
- JDBC向数据库中插入数据
- JDBC批量向数据库插入数据(十)
- python图片爬虫
- MySQL 最快速清空数据表数据的 SQL 语句
- java IO 目录列表器
- mui 真机测试下拉刷新不出动画
- Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性
- 如何用java jdbc 向数据库表插入大数据量
- java读取zip中指定文件
- java 开发IM即时通讯客户端 --安装SWT插件(一)
- springMVC的问题记录
- swing JPanel设置背景图 拉伸、平铺、居中
- SAP UI5初步结构分析研究(二)
- swing JPanel画渐变的背景色
- 最实用的 Linux 命令行使用技巧
- java swing MenuItem乱码