PreparedStatement を使用した複数行の挿入の最適化
当初は、ループと個別の PreparedStatment 呼び出しを使用して MySQL テーブルに行を挿入するのが一般的でした。 。ただし、パフォーマンスを向上させるには、複数行の挿入に MySQL でサポートされている構文を利用することが望ましいです。
PreparedStatement によるバッチ処理
PreparedStatement は、最適化された複数行の挿入のためのソリューションを提供します。バッチ処理による行の挿入。 PreparedStatement#addBatch()メソッドを使用することで、複数のSQL文をバッチに蓄積します。これらのステートメントは、PreparedStatement#executeBatch() によって同時に実行されます。
次のサンプル コードは、このアプローチを示しています。
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. } } } }
追加リソース
この手法の詳細については、以下を参照してください。リソース:
以上がPreparedStatement は MySQL での複数行の挿入をどのように改善できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。