zoukankan      html  css  js  c++  java
  • 三分钟插入百万数据

    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
    );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);
    }
    }
    }

  • 相关阅读:
    集合set() 和 深浅copy
    Python 数据类型的操作——字典
    Python()- 面向对象
    面向对象的软件开发
    Python数据类型的操作——列表、元组
    Python 数据类型的操作——字符串
    Linux下386中断处理
    任务的休眠与唤醒
    Linux下SIGSTOP的特殊特征和实现
    内核线程对信号的处理策略
  • 原文地址:https://www.cnblogs.com/feiyuanxing/p/5284735.html
Copyright © 2011-2022 走看看