当前位置:操作系统 > Unix/Linux >>

关于批量写入数据库的问题

关于批量写入数据库的问题
 
今天上午写个程序要将几张表内的数据读出写入一张表(2w多数据),开始没有使用批处理(每条写入都自动commit),写入速度在分钟级(太慢了后来就没计时),后来添加了批处理(不自动commit),全部用时20多秒。可见批处理写入数据库要快很多。程序大致结构如下:
Java代码    www.zzzyk.com  
EntityManager em = JPA.em();  
em.setFlushMode(FlushModeType.COMMIT);  
for(int i=0;i<20000;i++){  
    MaterialInfo mi = new MaterialInfo();  
    //set...  
    em.persist(mi);  
    if(i%BATCH_SIZE==0){  
        em.flush();  
    }  
}  
 上面的BATCH_SIZE我设置的是100,即每100条数据提交一次。
 
 
作者 shensy
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,