ホームページ >データベース >mysql チュートリアル >PreparedStatement は MySQL での複数行の挿入をどのように改善できるのでしょうか?

PreparedStatement は MySQL での複数行の挿入をどのように改善できるのでしょうか?

DDD
DDDオリジナル
2024-12-19 21:09:12968ブラウズ

How Can PreparedStatement Improve Multi-Row Inserts in MySQL?

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.
            }
        }
    }
}

追加リソース

この手法の詳細については、以下を参照してください。リソース:

  • JDBC チュートリアル - PreparedStatement の使用
  • JDBC チュートリアル - バッチ更新にステートメント オブジェクトを使用する

以上がPreparedStatement は MySQL での複数行の挿入をどのように改善できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。