バッチ挿入に INSERT INTO SELECT ステートメントを使用すると、大量のデータの挿入効率を効果的に向上させることができます。 具体的な手順は次のとおりです。 バッチ サイズを決定します。数千行が推奨されます。挿入するデータのサブセットを保存する一時テーブルを作成します。 INSERT INTO SELECT ステートメントを使用してソース テーブルから一時テーブルにデータを挿入し、LIMIT 句を使用して一度に挿入される行数を制限します。 INSERT INTO SELECT ステートメントを再度使用して、一時テーブルからターゲット テーブルにデータを挿入します。不要になった一時テーブルを削除します。
バッチ挿入のための INSERT INTO SELECT ステートメントの使用方法
あるテーブルから別のテーブルに大量のデータを挿入する必要がある場合は、INSERT INTO SELECT
を使用します。バッチ挿入用のステートメント 挿入により効率が向上します。バッチ挿入は、大規模な挿入操作を小さなバッチに分割することによって実装され、それによってデータベース サーバーのストレスが軽減されます。 INSERT INTO SELECT
语句进行分批插入可以提高效率。分批插入通过将大型插入操作分解成较小的批次来实现,从而减少对数据库服务器的压力。
步骤:
INSERT INTO SELECT
语句,将数据从源表插入到临时表。使用 LIMIT
子句限制每次插入的行数,以创建一个批次。<code class="sql">INSERT INTO #temp_table SELECT TOP (@batch_size) * FROM source_table WHERE NOT EXISTS (SELECT 1 FROM destination_table WHERE id = source_table.id);</code>
INSERT INTO SELECT
语句,将数据从临时表插入到目标表。<code class="sql">INSERT INTO destination_table SELECT * FROM #temp_table;</code>
<code class="sql">DROP TABLE #temp_table;</code>
优点:
注意:
IDENTITY_INSERT
INSERT INTO SELECT
ステートメントを作成して、ソース テーブルから一時テーブルにデータを挿入します。 LIMIT
句を使用して、バッチを作成するために一度に挿入される行の数を制限します。 🎜rrreeeINSERT INTO SELECT
ステートメントを再度使用して、一時テーブルからターゲット テーブルにデータを挿入します。 。 🎜を使用IDENTITY_INSERT
オプションにより、主キーの競合が発生する可能性があります。 🎜🎜ソーステーブルとターゲットテーブルに互換性のあるスキーマがあることを確認してください。 🎜🎜挿入プロセスを監視してデータの整合性を確保します。 🎜🎜以上がselectに一括挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。