orcale数据库批处理(batch)性能测试

JDBC Batch批处理性能测试

看到jdbc2.0的batch批处理,就自己试试它的性能如何。

1.现在新建一张测试用的表,数据库为oracle,mysql不支持batch批处理,及时在mysql中用了batch,数据库也只是会做普通的处理。

create table batch(id int,name varchar(5))

2.向此表中插入数据。

batch批处理:

PreparedStatement stmt = conn.prepareStatement("insert into batch values(?,'abc')");
		stmt.clearBatch();
		System.out.println("开始时间:"+System.currentTimeMillis());
		for(int i=0;i<500000;i++){
			stmt.setInt(1, i);
			stmt.addBatch();	
		}
		stmt.executeBatch();
		System.out.println("结束时间:"+System.currentTimeMillis());

直接插入处理:

PreparedStatement stmt = conn.prepareStatement("insert into batch values(?,'abc')");
		System.out.println("开始时间:"+System.currentTimeMillis());
		for(int i=0;i<500000;i++){
		stmt.setInt(1, i);
		stmt.execute();
		}
		System.out.println("结束时间:"+System.currentTimeMillis());

当咱们把插入数据量提高到的时候,具体比较见下表

数据量10050050005万50万
一条一条插<1s<1s~3s~20s~240s
batch批处理<1s<1s<1s<1s~7s

上图是我拿自己的笔记本跑出来的,所以说数据还是可信的。由此可见在我们对数据库进行大批量数据操作的时候,能合理的运用batch方法,可以提高很大的工作效率。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值