麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

java 下執行mysql 批量插入的幾種方法及用時

2019-11-26 16:11:27
字體:
來源:轉載
供稿:網友

方法1:

Java code

復制代碼 代碼如下:

conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
        pstmt = conn
                .prepareStatement("insert into loadtest (id, data) values (?, ?)");
        for (int i = 1; i <= COUNT; i++) {
            pstmt.clearParameters();
            pstmt.setInt(1, i);
            pstmt.setString(2, DATA);
            pstmt.execute();
        }

MyISAM:246.6秒、InnoDB:360.2秒

方法2: 使用事務,不自動commit

Java code

復制代碼 代碼如下:

conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
        conn.setAutoCommit(false);
        pstmt = conn
                .prepareStatement("insert into loadtest (id, data) values (?, ?)");
        for (int i = 1; i <= COUNT; i++) {
            pstmt.clearParameters();
            pstmt.setInt(1, i);
            pstmt.setString(2, DATA);
            pstmt.execute();
            if (i % COMMIT_SIZE == 0) {
                conn.commit();
            }
        }
        conn.commit();

InnoDB:31.5秒

方法3: executeBatch

Java code

復制代碼 代碼如下:

conn = DriverManager.getConnection(JDBC_URL
                + "?rewriteBatchedStatements=true", JDBC_USER, JDBC_PASS);
        conn.setAutoCommit(false);
        pstmt = conn
                .prepareStatement("insert into loadtest (id, data) values (?, ?)");
        for (int i = 1; i <= COUNT; i += BATCH_SIZE) {
            pstmt.clearBatch();
            for (int j = 0; j < BATCH_SIZE; j++) {
                pstmt.setInt(1, i + j);
                pstmt.setString(2, DATA);
                pstmt.addBatch();
            }
            pstmt.executeBatch();
            if ((i + BATCH_SIZE - 1) % COMMIT_SIZE == 0) {
                conn.commit();
            }
        }
        conn.commit();

InnoDB:5.2秒

上面的使用時必須
1)rewriteBatchedStatements=true
2)useServerPrepStmts=true

方法4:先LOAD再COMMIT

Java code

復制代碼 代碼如下:

conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
        conn.setAutoCommit(false);
        pstmt = conn.prepareStatement("load data local infile '' "
                + "into table loadtest fields terminated by ','");
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= COUNT; i++) {
            sb.append(i + "," + DATA + "/n");
            if (i % COMMIT_SIZE == 0) {
                InputStream is = new ByteArrayInputStream(sb.toString()
                        .getBytes());
                ((com.mysql.jdbc.Statement) pstmt)
                        .setLocalInfileInputStream(is);
                pstmt.execute();
                conn.commit();
                sb.setLength(0);
            }
        }
        InputStream is = new ByteArrayInputStream(sb.toString().getBytes());
        ((com.mysql.jdbc.Statement) pstmt).setLocalInfileInputStream(is);
        pstmt.execute();
        conn.commit();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 亚洲第一激情网 | 欧美日韩精品一区二区三区不卡 | 欧美视频在线一区二区三区 | 国内精品久久久久久久影视红豆 | 久久91精品国产91久久yfo | 日本一区二区高清不卡 | 污污的视频在线观看 | 久久国产一级片 | av电影在线网 | 精品久久久久久综合日本 | 色婷婷一区二区三区 | 91九色国产视频 | 成人毛片免费 | 亚州视频在线 | 久久亚洲国产午夜精品理论片 | 蜜桃精品视频在线观看 | 懂色av懂色aⅴ精彩av | 国产一区二区三区视频在线观看 | 欧美日韩在线免费观看 | 免费毛片播放 | 日韩精品免费一区二区三区 | 国产一区二区三区四 | 黄色大片高清 | 精品国产一区二区三区四 | 国产精品一二区 | 国产精品视频二区不卡 | 91av日韩| 成人毛片免费看 | 成人在线观看小视频 | 久色免费视频 | 国产精品1区2区在线观看 | 欧美一级美国一级 | 免费看性xxx高清视频自由 | 一区二区久久久久草草 | 激情久久免费视频 | 中国老女人一级毛片视频 | 蜜桃精品视频在线观看 | 午夜久久久精品一区二区三区 | 国产无遮挡一区二区三区毛片日本 | 本站只有精品 |