Вам нужно в mysql создать событие и запускать раз в месяц
Например у меня есть событие, которым я чищу бд openx, оставляя 3 последних месяца. Адаптируйте под себя
CREATE DEFINER=`root`@`localhost` EVENT `clear_old_stat` ON SCHEDULE EVERY 1 DAY STARTS '2020-09-02 16:43:42' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
DELETE FROM ox_data_intermediate_ad WHERE interval_end < DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
OPTIMIZE TABLE ox_data_intermediate_ad;
DELETE FROM ox_data_summary_ad_hourly WHERE date_time < DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
OPTIMIZE TABLE ox_data_summary_ad_hourly;
DELETE FROM ox_data_summary_ad_zone_assoc WHERE interval_end < DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
OPTIMIZE TABLE ox_data_summary_ad_zone_assoc;
DELETE FROM ox_data_summary_zone_impression_history WHERE interval_end < DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
OPTIMIZE TABLE ox_data_summary_zone_impression_history;
END