Можно через системный cron, можно через планировщик (events самого mysql), через крон банальность и инфы в гугле море, через планировщик - интересней:
По умолчанию в большинстве версий MySQL планировщик отключен. Чтобы его включить добавьте event_scheduler = 1; в файл конфигурации MySQL. Для избежания перезапуска MySQL следует выполнить далее команду SET GLOBAL event_scheduler = ON;
Затем создаем событие типа:
DELIMITER $$
CREATE EVENT IF NOT EXISTS `e_part_manage`
ON SCHEDULE EVERY 30 DAY
STARTS '2014-10-10 04:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT 'Управление удалением записей'
DO BEGIN
Тут можно как напрямую вставить команду удаления, так и использовать процедуру
END$$
DELIMITER ;
Как-то так.