[英]How to improve performance with executeBatch?
我正在編寫用於在表中插入45000條記錄的Java代碼,我使用以下代碼:
//create Db Connection
List<String> sqlInsertQueries = getListOfInsertsQueries();
for (String currentsql : sqlInsertQueries)
{
stmt.addBatch(currentsql);
}
stmt.executeBatch();
conn.commit();
此代碼非常慢,完成需要將近5分鍾。
有什么想法讓它更快地運作?
您應確保自動提交為false,並使用預准備語句。 准備好的語句可用於插入和更新。
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("INSERT INTO table (val1,val2) VALUES (?,?)");
for all values:
prepStmt.setString(1,val1);
prepStmt.setString(2,val2);
prepStmt.addBatch();
stmt.executeBatch();
conn.commit();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.