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を自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法
序文Vue アプリケーションなどの静的ページを開発する場合、クロスドメインになる可能性のあるインター...
この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...
最近のビジネスでは、オンライン トレーニング システムが特定のオンライン プレビュー ページに対する...
ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...
mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...
Linux viコマンドの詳しい説明vi エディタは、すべての Unix および Linux システ...
結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありま...
目次1. 複雑なページデータ領域をコンポーネントにカプセル化する2. 大きな画像の使用を避ける3. ...
カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...
1. Oracle をインストールします。インターネット上には Oracle のインストール手順が多...
クイックスタート1. Docker Hubでnginxイメージを見つけるdocker 検索 ngin...
SSHFS の機能: FUSE(Linux向けの最高のユーザー空間ファイルシステムフレームワーク)を...
導入シンプルな jQuery + CSS を使用して、ブラウザのデフォルトの動作を置き換えるカスタム...
Docker はますます多くのシナリオで使用されています。コマンドラインツールに慣れていない人にとっ...
公式サイト: http://code.google.com/p/zen-coding/ Zen コー...