对mysql数据库批量插入数据的速度测试

本文通过Java的JDBC进行MySQL数据库的批量插入数据测试,分析不同数据量下的插入耗时,强调了批处理设置、适时提交和跨数据库操作的重要性。

    今天,对mysql数据库的插入数据的速度做了个简单的测试。
   JdbcUtil.java

 


   SqlTest.java

 

  

背景:
   1、mysql数据库
   2、表结构为
      id varchar(10)
      name varchar(10)
   3、采用非自动提交的PrepareStatement批处理

   测试结果:
   数据量(条)   插入所需时间(ms)
     1                 0
     10                15
     100               62
     1,000             422
     10,000            2,922
     100,000           26,922
     1000,000          272,219

  

测试过程学习到的:
     1、批处理要conn.setAutoCommit(false)(默认会自动提交,不能达到批处理的目的,速度极慢!)。
     2、pstmt.executeBatch();
          conn.commit();
        要提交,数据库才会有数据。
     3、避免内存溢出,应每x(如:万)条提交一次数据。
     4、可用“数据库名.表名”的方法来访问数据库表
        这样,则在写JdbcUtil的DB_CONNECTION = "jdbc:mysql://localhost:3306/"时,
        可不具体到数据库,方便跨数据库的数据操作。
     5、Statement和PrepareStatement不仅可以操作DDL,添加删除表和数据库的sql都可以操作,用execute(String sql)方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值