Intente crear un evento que se ejecutará en la base de datos automáticamente después del intervalo de tiempo que desee.
Aquí hay un ejemplo:si desea eliminar entradas que tienen más de 30 días de antigüedad de alguna tabla 'tableName', que tiene la entrada de columna 'datetime'. Luego, la siguiente consulta se ejecuta todos los días, lo que realizará la acción de limpieza requerida.
CREATE EVENT AutoDeleteOldNotifications
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO
DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY)
Necesitamos agregar ON COMPLETION PRESERVE
para mantener el evento después de cada ejecución. Puede encontrar más información aquí:http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/