簡體   English   中英

JDBC批處理插入速度很慢! 我的意思是,真的很慢嗎?

[英]JDBC batch insert being SLOW! I mean, REALLY SLOW?

這是交易:

  1. 我使用DriverManager創建連接conn
  2. 我設置了conn.autoCommit(false);
  3. 然后我有PreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
  4. 我用pStat.set設置了幾個參數...然后用pStat.addBatch();添加了批處理pStat.addBatch();
  5. 每10000行(我調用addBatch() 10000次),我調用pStat.executeBatch();
  6. 不知道是否需要,但是我之后也調用pStat.clearBatch()

即使以上聽起來對我來說都很好,但是這很慢!!!

我平均每秒只有35條記錄(總共只有8列,只有技術上自動遞增的主鍵,有些不是空約束)。 我計算將需要一周的時間來插入我所有的2000萬行...

我做錯什么了嗎?

每個批處理周期應嘗試添加幾行? 10000太多了嗎?

如果您碰巧將MySQL與JDBC驅動程序一起使用,版本為5.1.7,則可能會受到影響批量插入速度的錯誤的影響。 更新到5.1.10或更高版本應該注意這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM