MySQLでテーブルの大量のレコードを削除する方法

例 テーブルsyslogsは1000万レコードがある、業務の停止しなかった場合に「statusid=2」のすべてレコードを削除する
レコード数は約400万個です。

方法1 DELETE FROM syslogs WHERE statusid=1
結果:失敗 「lock wait timeout exceed」エラーメッセージが表示される

方法2 limitパラメータを通じて何回かに分けて削除
DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 100000;

 

DataBase

Posted by arkgame