Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est le meilleur moyen de supprimer régulièrement les anciennes lignes de MySQL ?

Essayez de créer un événement qui s'exécutera automatiquement sur la base de données après l'intervalle de temps souhaité.

Voici un exemple :si vous souhaitez supprimer des entrées datant de plus de 30 jours d'une table 'tableName', ayant une entrée de colonne 'datetime'. Ensuite, la requête suivante s'exécute tous les jours et effectuera l'action de nettoyage requise.

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)

Nous devons ajouter ON COMPLETION PRESERVE pour conserver l'événement après chaque course. Vous pouvez trouver plus d'informations ici :http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/