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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-15 07:13:12300ブラウズ

Single-row vs. Multi-row INSERTs in MySQL: Which is Faster?

単一行 INSERT と複数行 INSERT の速度比較

データベース挿入の最適化を目指す場合、次のような重要な疑問が生じます。複数の単一行 INSERT ステートメントを使用するか、単一の複数行 INSERT を選択するか。最適なアプローチを決定するために、パフォーマンス分析を詳しく調べ、関連する MySQL ドキュメントを検討してみましょう。

パフォーマンス分析

MySQL ドキュメント (https://dev. mysql.com/doc/refman/8.0/en/insert-optimization.html)、行の挿入に必要な時間は主に次の要因の影響を受けます。そのおおよその割合は括弧内に示されています:

  1. 接続: (3)
  2. サーバーへのクエリの送信: (2)
  3. クエリの解析: (2)
  4. 行の挿入: (1 x サイズ行)
  5. インデックスの挿入: (1 x インデックスの数)
  6. 終了: (1)

複数行 INSERT と単一行INSERT

これらの要因を分析すると、単一の大きな複数行の INSERT ステートメントを使用すると、複数の単一行 INSERT を使用する場合に比べて、オーバーヘッドを大幅に削減できます。単一行の INSERT ごとに、7 (ステップ 1 ~ 3、6 の合計) のオーバーヘッドが発生します。

そのため、MySQL ドキュメントでは、複数の行を一度に挿入するために複数の VALUES リストを含む INSERT ステートメントを使用することを明示的に推奨しています。特に、同じクライアントから多数の行が同時に挿入される場合に顕著です。このアプローチは「かなり高速」であり、パフォーマンスに大きなメリットをもたらします。

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

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