PreparedStatement.executeBatch()效率低的问题
下面是我的方法,我的数据量大概有10w条左右,sql语句是简单的更新语句,我每3000条做一次提交(在调用本方法的方法中实现的),3000条数据需要4分多钟,这还是要本机数据库,如果是服务器数据库的话时间回达到10几分钟,有的时候会达到40分钟,我尝试给换成每1000条提交和每1条提交,时间几乎差不多(本机),服务器未测试,所以我想知道为什么会出现这样的问题,群里有人告诉我说他的700w数据才2分钟,不知道真假。但是现在这个效率直接影响到我的其他业务了,请各位大侠协助解决下,出出注意,不盛感激。
conn.setAutoCommit(false);//开始事务
ChangeDay cd = new ChangeDay();
String sql = cd.updateDay();
ps = conn.prepareStatement(sql);
Iterator<Bankaccount> it = list.iterator();
int i=0;
while(it.hasNext())
{
//System.out.println(i);
Bankaccount bc = (Bankaccount)it.next();
ps.setFloat(1, bc.getTheMoney());
ps.setString(2, bc.getBankaccount());
ps.addBatch();
i++;
}
//System.out.println("111111111");
ps.executeBatch();//此处特别慢
//System.out.println("222222222");
conn.commit();//提交事务
//System.out.println("33333333333");
ps.clearBatch();
//System.out.println("444444444");