java 批量插入10萬條數據


for (int i = 0; i < 100000; i++) {
                dbHelper.insert("INSERT aaa(name)  Values ('1')");
            }

運行時間==780450ms

conn = getConn();
// JAVA默認為TRUE,我們自己處理需要設置為FALSE,並且修改為手動提交,才可以調用rollback()函數
conn.setAutoCommit(false);
st = conn.createStatement();
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
    st.execute("INSERT bbb(name)  Values ('1')");
}
// 事務提交
conn.commit();
long end = System.currentTimeMillis();
System.out.println("運行時間==" + (end - start) + "ms");

運行時間==21484ms

conn = getConn();
// JAVA默認為TRUE,我們自己處理需要設置為FALSE,並且修改為手動提交,才可以調用rollback()函數
conn.setAutoCommit(false);
st = conn.createStatement();
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
    st.addBatch("INSERT ccc(name)  Values ('1')");
}
st.executeBatch();
// 事務提交
conn.commit();

運行時間==21524ms

在mysql鏈接后加上如下參數,代碼和上面的完全相同,結果速度快了很多

&rewriteBatchedStatements=true

運行時間==8216ms

而我在第二種方法的連接上加上&rewriteBatchedStatements=true,結果運行結果和原來相差無幾

運行時間==21538ms

參考鏈接:

介紹MySQL Jdbc驅動的rewriteBatchedStatements參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM