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. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...
集計関数データセットに作用し、そのデータセットの値を返します。 count: 統計結果のレコード数。...
背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...
目次プラグインとはプラグインの作成プラグインの使用要約するプラグインとはVue フレームワークでは、...
1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...
display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...
以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...
具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...
プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...
目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...
目次1. 元のドライバーをアンインストールする2. 新しいグラフィックカードドライバーをダウンロード...
1. インストールと使用まず、Vue プロジェクトにインストールします。 npm インストール --...
目次1. 最も単純なサーバー側の例2. バインドシステムコール2.1、inet_bind 2.2、i...
GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアル1. プ...
目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...