RDSでgeneral_logとslow_logテーブルをクリアする方法


general_log や slow_log の保存先がTABLEにしておくと mysql.general_log とかにレコードが増えていくが、RDSだとこれらのテーブルを直接TRUNCATEとかは出来ない。その代わりにRDSではそれらのログをローテーションするプロシージャが用意されているのでそれを読んでやることで削除が出来ます。
このプロシージャは1回実行すると *_backup というテーブルにリネームするだけなのでまだ削除はされません。ただし1世代しか保存されない作りなので2回実行してやることで完全にレコードを削除することが出来ます。

call rds_rotate_general_log;
call rds_rotate_general_log;
call rds_rotate_slow_log;
call rds_rotate_slow_log;