ホームページ > データベース > mysql チュートリアル > Update ステートメントを使用せずに 1 億 2,000 万のデータベース レコードを効率的に更新するにはどうすればよいですか?

Update ステートメントを使用せずに 1 億 2,000 万のデータベース レコードを効率的に更新するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-01 00:34:09
オリジナル
557 人が閲覧しました

How Can I Efficiently Update 120 Million Database Records Without Using an Update Statement?

非更新アプローチを使用した 1 億 2,000 万レコードの効率的な更新

1 億 2,000 万のレコードを含む広大なテーブルを更新するパフォーマンスを向上させるには、非更新アプローチを採用することが不可欠です。この手法では、SELECT ステートメントを利用して、必要な変更を 2 番目のテーブルに追加します。

実装:

  1. 2 番目のテーブルを格納する別のスキーマを作成します。クラスター化インデックス、ID 列、計算列、および新しい INT 列が含まれていることを確認します。この作成プロセスでは、トリガー、外部キー制約、および非クラスター化インデックスを除外します。
  2. 1000 行を使用してテスト挿入を実行し、機能とデータの精度を検証します。
  3. 2 番目のテーブルを切り捨てて開始します。完全な挿入。
  4. すべての非クラスター化主キー/一意を再構築します。制約/インデックス、外部キー制約、デフォルト制約、およびチェック制約を別個のバッチとして実行します。
  5. 元のテーブルをバックアップ スキーマに転送し、2 番目のテーブルをプライマリ スキーマに転送します。
  6. トリガーを使用します。潜在的な調整のために、スキーマ転送プロセス中に元のテーブルのすべての DML をログに記録します。

利点:

この非更新アプローチには、従来の更新方法に比べて大きな利点があります。これにより、長期にわたる非効率な更新プロセスが排除され、より高速で信頼性の高いデータ変更エクスペリエンスが保証されます。

追加の考慮事項:

  1. このアプローチは、オフライン操作で次のことを行うのに最適です。システムのライブ更新中に発生する可能性のあるデータ整合性の問題を最小限に抑えます。
  2. 大規模なデータセットの場合は、実装を検討してください。一括ログまたは単純なリカバリ モデルを使用して、パフォーマンスを最適化します。
  3. 正しく正確な結果を確実に得るために、変更を試みる前に要件とデータ構造を注意深く確認してください。

以上がUpdate ステートメントを使用せずに 1 億 2,000 万のデータベース レコードを効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート