数据库批量数据插入问题分析
2009-09-22 00:00:00 来源:WEB开发网输出结果:
commonInsert()执行时间为:13828ms
二、普通插入+手动提交:setAutoCommit(false)、commit()
代码:
1Connection conn=source.getConnection();
2conn.setAutoCommit(false);
3Statement s=conn.createStatement();
4String sql="";
5long start=System.currentTimeMillis();
6for(int i=0;i<100000;i++)
7{
8 sql="insert into user(id,name) value('"+(i+1)+"','chenxinhan')";
9 s.execute(sql);
10}
11conn.commit();
12s.close();
13conn.close();
14long end=System.currentTimeMillis();
15System.out.println("commonInsert()执行时间为:"+(end-start)+"ms");
输出结果:
commonInsert()执行时间为:13813ms
对比分析:
可以看出,仅仅是这种方式的设置,对性能的影响并不大。
三、普通插入+手动提交+ prepareStatement方式
代码:
1Connection conn=source.getConnection();
2 conn.setAutoCommit(false);
3 PreparedStatement ps=conn.prepareStatement("insert into user(id,name) value(?,?)");
4 long start=System.currentTimeMillis();
5 for(int i=0;i<100000;i++)
6 {
7 ps.setString(1,(i+1)+"");
8 ps.setString(2,"chenxinhan");
9 ps.execute();
10 }
11 conn.commit();
12 ps.close();
13 conn.close();
14 long end=System.currentTimeMillis();
15 System.out.println("prepareStatementInsert()执行时间为:"+(end-start)+"ms");
更多精彩
赞助商链接