一度にやらずに小分けに処理するとか
SSDの容量をすげー増やして、夜中に一気に掃除するとか
データベースの構造を見なおして効率化するとか

掃除の仕組み自体にも何か問題がありそう
ディレクトリ移動だけでトリガーを引いちゃうのもだけど
トリガーを引くたびにそんなに負荷がかかるのも変
データベースの中身をperlで全部読み込んでから処理してるとか…