用java快速批量insert資料

來源:互聯網
上載者:User

由於要項目準備上線,所以要準備大量測試資料測試新項目的效能,但是又不太會用預存程序和資料庫事務進行資料插入。

最開始使用最簡單的java的for迴圈語句不停的add對象,但是發現這個效率太低,要插入幾百萬資料估計得一天,於是在網上找了下,找到一篇直接使用jdbc直接插入資料的,拿下來試了下發現效能雖然比new對象好,但是效率也很低。

只能再找,終於找到一個很高的,也就是使用批次提交方式的sql執行,這個100萬資料大概也就30秒左右。



[java] view plain copy print ? public static void insertRelease() {           Long begin = new Date().getTime();           String sql = "INSERT INTO tb_big_data (count, create_time, random) VALUES (?, SYSDATE(), ?)";           try {               conn.setAutoCommit(false);               PreparedStatement pst = conn.prepareStatement(sql);               for (int i = 1; i <= 100; i++) {                   for (int k = 1; k <= 10000; k++) {                       pst.setLong(1, k * i);                       pst.setLong(2, k * i);                       pst.addBatch();                   }                   pst.executeBatch();                   conn.commit();               }               pst.close();               conn.close();           } catch (SQLException e) {               e.printStackTrace();           }           Long end = new Date().getTime();           System.out.println("cast : " + (end - begin) / 1000 + " s");       }  
原文地址:http://blog.csdn.net/frinder/article/details/38830723

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.