mysql delete文 スロークエリ

原因
おそらくwhereで指定しているカラムの絞り込み時、に時間がかかっていた。
参考:【SQL】DELETE文が遅いときのチューニング方法 | SE日記.

スロークエリの時の状態. このような状態でupdated_atをwhereの条件としていて、件数が多い、updated_atにインデックスがないのが原因と考えられる。

delete from テーブル名 where updated_at < '特定の日付';

なので、プライマリーキーであるidをwhereの条件として指定する. プライマリキーは作られた時点で一意制約なので、計算量としてももっとも早い. 改善版.

delete from テーブル名 where id in (idのリスト);