使用Java使用PreparedStatement優化MySQL中的多行插入
在資料庫編程中,高效地向表中插入多行對於性能至關重要。本文介紹如何使用Java的PreparedStatement來最佳化MySQL中的多行插入。
背景
以前,使用一個簡單的循環一次插入一行,這可能效率低下。為了提高效能,我們的目標是利用 MySQL 支援的語法,允許在單一語句中插入多行。
使用PreparedStatement 批次
MySQL 提供批次作為一種執行方式多個語句作為一個群組。借助PreparedStatement,我們可以透過使用addBatch() 方法將單一行資料新增至批次中來實現此目的。一旦批次完成或達到特定的大小限制,我們就可以使用executeBatch()執行整個批次。
以下是使用PreparedStatement進行批次處理的範例:
public void save(List<Entity> entities) throws SQLException { try ( Connection connection = database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT); ) { int i = 0; for (Entity entity : entities) { statement.setString(1, entity.getSomeProperty()); // ... statement.addBatch(); i++; if (i % 1000 == 0 || i == entities.size()) { statement.executeBatch(); // Execute every 1000 items. } } } }
批次提高了效能透過減少與資料庫的往返並使伺服器能夠高效地執行多個語句。
其他資源
更多關於JDBC 批次的資訊:
以上是如何使用Java的PreparedStatement優化MySQL中的多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!