JDBC插入百万数据,不到5秒!
java自带的批量操作,就可以很好的支持大量数据的处理。相比c#,简单很多。c#要使用oracle提供的ODP.NET,效率才很高,但是代码却很复杂。总之,在这方面,c#没得比。当然,这里的表是没加索引的,加了索引,效率会变慢,但是还是很高效。
1 long startTime=System.currentTimeMillis(); 2 3 Connection conn=null; 4 try{ 5 conn=getConnection(); 6 conn.setAutoCommit(false); 7 8 PreparedStatement stmt=conn.prepareStatement("INSERT INTO product_tmp VALUES (?,?,?,?)"); 9 System.out.println("数据大小:"+datas.size()); //1000000 10 11 int num=0; 12 for(Values v:datas){ 13 num++; 14 stmt.setInt(1, v.getId()); 15 stmt.setString(2, v.getStr1()); 16 stmt.setString(3, v.getStr2()); 17 stmt.setString(4, v.getStr3()); 18 stmt.addBatch(); 19 //注意: 每5万,提交一次;这里不能一次提交过多的数据,我测试了一下,6万5000是极限,6万6000就会出问题,插入的数据量不对。 20 if(num>50000){ 21 stmt.executeBatch(); 22 conn.commit(); 23 num=0; 24 } 25 } 26 stmt.executeBatch(); 27 conn.commit(); 28 }catch(Exception e){ 29 conn.rollback(); 30 e.printStackTrace(); 31 }finally{ 32 closeConnection(conn); 33 long endTime=System.currentTimeMillis(); 34 System.out.println("方法执行时间:"+(endTime-startTime)+"ms"); 35 }
转载于:https://www.cnblogs.com/myCodingSky/p/3302879.html
JDBC插入百万数据,不到5秒!相关推荐
- oracle+循环插入sql,SQL server,Oracle循环插入百万数据
SQL server,Oracle循环插入百万数据 SQL server,Oracle循环插入百万数据 压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本 declare @ma ...
- dapper 使用sqlbulkcopy,50秒插入百万数据
在netcore中常常使用的EF,Dapper等orm框架,在做批量数据插入的时候,一般都是两种操作: 1:逐行插入,insert into.... 2:批量插入. 最近项目中遇到个问题,需要同时插入 ...
- 低配MySQL数据库几十秒插入百万数据
- 【优化】C#利用ODP.NET往oracle中高效插入百万数据
1.将字典Dictionary<string, object[]> 改为Dictionary<string, object>,如果是object[] 在调用时某些转换不了 ...
- sql语句插入百万测试数据
开发的过程中,很多时候我们需要插入百万数据来测试功能和性能,今天我来教大家最简单的插入方法 -----------------1.新建表---------------------CREATE TABL ...
- jdbc批处理+手动事务+多线程实现81秒插入1000万数据(多线程版)
现在来试试多线程能够多少秒钟插入千万数据 /*** @Author: guandezhi* @Date: 2019/4/13 15:35*/ public class JdbcUtils {priva ...
- java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...
packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;import ...
- 为何插入10万数据只需2秒
文章目录 一.前言 二.问题 1.url后面useServerPrepStmts是什么? 2.url后面rewriteBatchedStatements是什么? 3.这两个参数对语句执行有什么影响? ...
- 【SpringBoot项目中使用Mybatis批量插入百万条数据】
SpringBoot项目中使用Mybatis批量插入百万条数据 话不多说,直接上代码,测试原生批处理的效率 开始测试 背景:因为一些业务问题,需要做多数据源,多库批量查询.插入操作,所以就研究了一下. ...
- Java 百万数据秒级导出到Excel中
出自: 腾讯课堂 700多分钟干货实战Java多线程高并发高性能实战全集 , 我学习完了之后, 我给 老师在课上说的话做了个笔记,以及视频的内容,还有代码敲了一遍,然后添加了一些注释,把执行结果也整理 ...
最新文章
- Visual Studio 2017中的编译器工具布局
- py2exe使用相对路径的当前目录问题
- BugkuCTF web2
- kali Linux 火狐浏览器改中文
- 【PyTorch】中view()==>相当于numpy中resize()、reshape()的功能
- ubuntu16.04安装docker(阿里云镜像)
- 网络TCp数据的传输设计(黏包处理)
- java算法腐烂橘子,答案——腐烂的橘子算法题目
- 手机900e模式如何救_手机护眼模式真的有用吗?长时间看手机如何保护视力?...
- public protected default private权限修饰符理解
- mysqli 语句和mysql语句一样吗_mysqli语句的用法
- Excel图表之道一突破常规
- Linux下破解UE
- VarianceThreshold
- 为知笔记保存为html,为知笔记 | 如何保存微信内容到为知笔记?
- JavaScript:实现返回格式化的电话号码的字符串算法(附完整源码)
- P1852 跳跳棋(建模LCA)
- Mysql:设置主键自动增长起始值
- Pycharm 报错 Environment location directory is not empty 解决
- 相机、镜头以及线激光器选型总结