ホームページ >データベース >mysql チュートリアル >LOAD DATA INFILE を使用して MySQL の ON DUPLICATE KEY UPDATE をシミュレートするにはどうすればよいですか?

LOAD DATA INFILE を使用して MySQL の ON DUPLICATE KEY UPDATE をシミュレートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-06 08:39:11264ブラウズ

How Can I Simulate MySQL's ON DUPLICATE KEY UPDATE with LOAD DATA INFILE?

LOAD DATA INFILE を使用した MySQL の ON DUPLICATE KEY UPDATE のエミュレーション

LOAD DATA INFILE は、依然として、大量のデータセットを MySQL に迅速にインポートするための主要なアプローチです。 ON DUPLICATE KEY UPDATE のサポートがないため、INSERT IGNORE または REPLACE に類似した動作を実装しようとする場合、その有効性が不十分になる可能性があります。それにもかかわらず、ON DUPLICATE KEY UPDATE には REPLACE よりも利点があり、重複が発生した場合の削除や挿入に伴うパフォーマンスの低下を回避し、自動インクリメント ID を保持します。

LOAD DATA INFILE 操作中に ON DUPLICATE KEY UPDATE 機能をエミュレートするには、次の手順を実行します。これらの手順:

  1. 一時テーブル: ターゲット テーブル 'target_table' と同じ構造を共有する 'temporary_table' という名前の一時テーブルを作成します。
  2. オプション: インデックスを無効にする: パフォーマンスを最適化するには、インデックスを削除します。インデックス「PRIMARY」に対して「DROP INDEX」などのコマンドを使用して一時テーブルを作成します。 'some_other_index'.
  3. 一時テーブルへのデータのロード: LOAD DATA INFILE コマンドを実行して、CSV ファイルを一時テーブルにロードします。
  4. データをコピーON DUPLICATE KEY UPDATE: ON DUPLICATE を含む INSERT ステートメントを使用します。 KEY UPDATE 句を使用して、一時テーブルからターゲット テーブルにデータをコピーし、重複キー値を更新します。
  5. 一時テーブルの削除: データ転送が完了したら、一時テーブルを削除します。

コマンド「SHOW INDEX FROM」と「SHOW COLUMNS FROM」を使用すると、このプロセスを自動化できます。指定されたテーブル

以上がLOAD DATA INFILE を使用して MySQL の ON DUPLICATE KEY UPDATE をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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