3分钟左右的时间如何向MySQL数据库中插入100万条数据

发布时间:2016-12-11 2:41:46 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"3分钟左右的时间如何向MySQL数据库中插入100万条数据",主要涉及到3分钟左右的时间如何向MySQL数据库中插入100万条数据方面的内容,对于3分钟左右的时间如何向MySQL数据库中插入100万条数据感兴趣的同学可以参考一下。

一、编写测试案例向MySQL数据库中插入百万条数据。测试数据表建表脚本如下: use db_xk; drop table if exists tb_test2; create table tb_test2 (         id int primary key auto_increment,         subject varchar(50) not null,         description varchar(200) not null,         teacher_id int(10) zerofill not null,         student_id int(10) zerofill default null,         state boolean not null default false );        测试案例源码如下: package test;   import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;   import util.DBUtil;   public class TestDataBase2 {       public static void main(String[] args) {          Connection conn = DBUtil.getConnection();        String sql = "insert into tb_test2(subject, description, teacher_id, student_id) values (?,?,?,?)";          try {            PreparedStatement prep = conn.prepareStatement(sql);                       // 将连接的自动提交关闭,数据在传送到数据库的过程中相当耗时            conn.setAutoCommit(false);            long start = System.currentTimeMillis();                       for (int i = 0; i < 10; i++) {                             long start2 = System.currentTimeMillis();                             // 一次性执行插入10万条数据               for (int j = 0; j < 100000; j++) {                                     prep.setString(1, "test2");                   prep.setString(2, "test3");                   prep.setInt(3, 1234562);                   prep.setInt(4, 12354545);                                     // 将预处理添加到批中                   prep.addBatch();                                 }                             // 预处理批量执行               prep.executeBatch();               prep.clearBatch();               conn.commit();                             long end2 = System.currentTimeMillis();                             // 批量执行一次批量打印执行依次的时间               System.out.print("inner"+i+": ");               System.out.println(end2 - start2);              }                       long end = System.currentTimeMillis();            System.out.print("total: ");            System.out.println(end - start);                   } catch (SQLException e) {              e.printStackTrace();        } finally {              DBUtil.close(conn);        }            }   }

上一篇:java jdk动态代理 实例 简单明了 对初学者非常有效
下一篇:Cheat Engine TUTORIAL 教程

相关文章

相关评论