mysql バッチで大量のデータを削除する

mysql バッチで大量のデータを削除する

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 を追加するのが最適です。

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • PHP で MySQL 内の同じプレフィックスを持つデータ テーブルを一括削除するコード

<<:  Vue2.x - アンチシェイクとスロットリングの使用例

>>:  Tomcatを自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法

推薦する

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

MySQLで日付を比較する方法の詳細な説明

データ型が datetime であるフィールド add_time を持つテーブル product が...

Vue の高度な構築プロパティの詳細な説明

目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...

Mysql5.6.36 スクリプトのコンパイル、インストール、初期化のチュートリアル

概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...

MySQLカーソルの使い方と機能の詳細な説明

[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...

Nginx 構成の場所の一致ルールの例の説明

nginx の設定命令のスコープは、main、server、location の 3 種類に分けられ...

CSS3はブラウザのスクロールバーのスタイルを変更します

注意: この方法は、Webkit ベースのブラウザにのみ適用されます。ブラウザのスクロールバーが広す...

クールな花火効果を実現するjs

この記事では、jsを使用してクールな花火効果を実現するための具体的なコードを参考までに共有します。具...

JavaScript メッセージ ボックスの例

JavaScript では、警告ボックス、確認ボックス、プロンプト ボックスの 3 種類のメッセージ...

Linux echo テキスト処理コマンドの使用法と例

Linux ヘルプ ドキュメントでの echo の説明は、Python や Java などのプログラ...

Dockerにelasticsearchとkibanaをインストールする方法

Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑...

Vue における Vue.use() の原理と基本的な使用法

目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...

Angularコンポーネントライフサイクルの詳細説明(I)

目次概要1. フックの呼び出し順序2. onChangesフック3. 変更検出メカニズムとDoChe...

CSS3はキングをマッチングさせるときにパーティクルアニメーション効果を実現します

コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...

MySQL 8.0.18 のインストールと設定のグラフィックチュートリアル

学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...