ホームページ  >  記事  >  データベース  >  mysqlでデータベース内のデータを一括削除する方法

mysqlでデータベース内のデータを一括削除する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-09-28 13:16:104019ブラウズ

データベース内のデータをバッチで削除する Mysql メソッド: LIMIT パラメーターを使用してバッチで削除します。構文は [DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000] です。

mysqlでデータベース内のデータを一括削除する方法

Mysql でデータベース内のデータを一括削除する方法:

10 件のテーブル (syslog) があるとします。 100 万件のレコードがあるため、業務を停止せずに statusid=1 のすべてのレコードを削除する必要があります。約 600 万件のレコードがあります。DELETE FROM syslogs WHERE statusid=1 を直接実行すると、削除に失敗することがわかります。ロック待機タイムアウトがエラーを超えたためです。

このステートメントに含まれるレコードが多すぎるため、LIMIT パラメーターを使用してバッチで削除します。たとえば、10,000 レコードごとに削除します。その後、MySQL のようなステートメントを使用して完了できます:

 DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;

その後、これを複数回実行して、これらのレコードを正常に削除します。

注:

  • 大規模な一括削除を実行する場合は、制限を使用するように注意してください。制限を使用しない場合、大量のデータを削除するとデッドロックが発生する可能性があるためです。

  • delete where ステートメントがインデックスにない場合は、まず主キーを見つけてから、主キーに基づいてデータベースを削除できます。

  • 誤用を防ぐために、更新および削除するときに制限 1 を追加することをお勧めします。

#その他の関連する無料学習の推奨事項: mysql チュートリアル(ビデオ)

以上がmysqlでデータベース内のデータを一括削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。