ホームページ >データベース >mysql チュートリアル >MySQL での複数の単一 INSERT と単一の複数行 INSERT: 一括データ挿入ではどちらが速いですか?

MySQL での複数の単一 INSERT と単一の複数行 INSERT: 一括データ挿入ではどちらが速いですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 12:55:10515ブラウズ

Multiple Single INSERTs vs. Single Multiple-Row INSERT in MySQL: Which is Faster for Bulk Data Insertion?

複数の単一 INSERT と単一の複数行 INSERT: どちらが速いですか?

へのデータ挿入のパフォーマンスを向上させるための取り組みMySQL では、一般的なジレンマが発生します。開発者は、複数の個別の INSERT を 1 つの大きな複数行 INSERT にチェーンするか、別々に実行する必要があります。各行に INSERT を実行しますか?この疑問を明らかにするために、この記事ではこれらのアプローチの効率の比較を検討します。

MySQL のドキュメントによると、行の挿入速度は次のようなさまざまな要因に大きく影響されます。

  • 接続の確立 (3/10)
  • サーバーへのクエリの送信(2/10)
  • クエリ解析 (2/10)
  • 行挿入 (1/10 * 行サイズ)
  • インデックス挿入 (1/10 * インデックス数) )
  • 接続を閉じる(1/10)

この内訳から、単一の大きな INSERT ステートメントを使用すると、個々の挿入ごとに 7/10 の大幅なオーバーヘッドを節約できることがわかります。

したがって、 MySQL のドキュメントでは、「同じクライアントから同時に多くの行を挿入する場合は、複数の VALUES リストを指定した INSERT ステートメントを使用して、複数の行を挿入します」とアドバイスしています。これは、個別の単一行 INSERT ステートメントを使用するよりもかなり高速です (場合によっては何倍も高速です)。

したがって、MySQL への一括データ挿入の場合、単一の複数行 INSERT は非常に高速です。接続の確立、クエリの解析、終了アクションに関連するオーバーヘッドが削減されるため、複数の個別の INSERT よりも高速になります。

以上がMySQL での複数の単一 INSERT と単一の複数行 INSERT: 一括データ挿入ではどちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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