mysql バッチで大量のデータを削除する 1000万件のレコードを持つテーブル(syslogs)があるとします。業務を停止せずに、statusid=1のレコードをすべて削除する必要があります。レコードは約600万件あります。DELETE FROM syslogs WHERE statusid=1を直接実行すると、ロック待機タイムアウト超過エラーのため削除が失敗することがわかります。 このステートメントにはレコードが多すぎるため、LIMIT パラメータを使用して、たとえば 10,000 レコードごとに削除するなど、バッチで削除します。 MySQL は次のステートメントで完了できます。 DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000; その後、これを複数回実行することで、これらのレコードを正常に削除できます。 注記: 大規模な削除を実行する場合は、必ず limit を使用してください。制限を使用しない場合、大量のデータを削除するとデッドロックが発生する可能性が高くなります。 削除の where 句がインデックス上にない場合は、まず主キーを見つけて、主キーに基づいてデータベースを削除できます。 誤操作を防ぐために、更新および削除時に制限 1 を追加するのが最適です。 読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Vue2.x - アンチシェイクとスロットリングの使用例
>>: Tomcatを自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法
目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...
データ型が datetime であるフィールド add_time を持つテーブル product が...
目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...
概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...
[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...
nginx の設定命令のスコープは、main、server、location の 3 種類に分けられ...
注意: この方法は、Webkit ベースのブラウザにのみ適用されます。ブラウザのスクロールバーが広す...
この記事では、jsを使用してクールな花火効果を実現するための具体的なコードを参考までに共有します。具...
JavaScript では、警告ボックス、確認ボックス、プロンプト ボックスの 3 種類のメッセージ...
Linux ヘルプ ドキュメントでの echo の説明は、Python や Java などのプログラ...
Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑...
目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...
目次概要1. フックの呼び出し順序2. onChangesフック3. 変更検出メカニズムとDoChe...
コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...
学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...