MySQL への複数行の挿入: Union と Multi-Row INSERT
データベース操作における一般的なタスクの 1 つは、複数の行を挿入することです。データをテーブルに取り込みます。これらの行を個別に挿入するのと、UNION 演算子を使用して単一のクエリに挿入するのとどちらが効率的であるかという疑問が生じます。両方のオプションを見てみましょう。
複数行 INSERT ステートメント
MySQL では、VALUES 構文を使用して 1 つのクエリに複数の行を挿入する便利な方法が提供されています。各行は、かっこで囲まれた列値のリストによって表されます。これらのリストはカンマで区切られ、INTO 句の後に組み込まれます。
例:
INSERT INTO tbl_name (a, b, c) VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
UNION 演算子
UNION 演算子は、2 つ以上の SELECT ステートメントを 1 つの結果セットに結合します。 INSERT ステートメントのコンテキストでは、複数の INSERT クエリを 1 つに連結するために使用できます。
ただし、複数行の挿入に UNION を使用することは推奨されないことに注意してください。複数行の INSERT ステートメントと比較すると、不要なオーバーヘッドが発生し、効率が低下する可能性があります。
結論
MySQL テーブルに複数の行を挿入する必要がある場合、一般に、複数行の INSERT ステートメントを使用する方が高速かつ効率的です。このアプローチにより、単一のクエリにすべての行を挿入できるため、ネットワーク トラフィックが最小限に抑えられ、実行時間が短縮されます。パフォーマンス上の問題が発生する可能性があるため、UNION 演算子は複数行の挿入には使用しないでください。
以上がMySQL の複数行挿入: UNION と複数行 INSERT - どちらが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。