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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 13:15:18760ブラウズ

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

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

大規模なデータセットを MySQL にロードする際の速度の利点にもかかわらず、LOAD DATA INFILE にはネイティブ機能がありません。 ON DUPLICATE KEY UPDATE 機能のサポート。この制限により、自動インクリメント ID を置き換えたり、不要なオーバーヘッドを発生させたりせずに既存のレコードを更新するときに課題が生じます。

解決策:

LOAD DATA INFILE を使用して ON DUPLICATE KEY UPDATE をエミュレートするには、これらをフォローできます手順:

  1. 一時テーブルの作成: CREATE TEMPORARY TABLE を使用して、ターゲット テーブルと同じ構造の一時テーブルを構築します。
  2. 必要に応じて最適化します。 : プロセスを迅速化するには、次のコマンドを実行して一時テーブルのインデックスを無効にします。既存のインデックスに対する DROP INDEX コマンド。
  3. 一時テーブルへのデータのロード: LOAD DATA INFILE を使用して、適切なフィールド区切り文字と囲み文字を指定して、CSV データを一時テーブルにインポートします。
  4. ON DUPLICATE KEY を使用してデータを転送UPDATE: ON DUPLICATE KEY UPDATE を指定した INSERT ステートメントを使用して、一時テーブルからターゲット テーブルにデータをコピーします。列名が正しく一致していることを確認してください。
  5. 一時テーブルの削除: DROP TEMPORARY TABLE を実行して、一時テーブルを解放します。

このアプローチは、LOAD の速度を利用します。 ON DUPLICATE KEY UPDATE の機能をエミュレートしながら、DATA INFILE を実行します。 SHOW INDEX FROM と SHOW COLUMNS FROM を使用してプロセスを自動化すると、任意のテーブルに簡単に適応させることができます。

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

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