Suppression efficace des anciennes lignes MySQL avec la troncature glissante
Dans de nombreuses applications, il est nécessaire de supprimer périodiquement les lignes plus anciennes qu'un âge spécifié. Lors de la gestion de tables à fort trafic, il est crucial de trouver une méthode efficace pour cela.
Approche actuelle
Auparavant, les tables étaient tronquées en un seul gros lot à l'aide d'une tâche cron en cours d'exécution. toutes les heures. Bien que cette application ait empêché le blocage de l'application, elle a introduit des limitations d'évolutivité pendant les périodes de trafic d'écriture important.
Alternative : événements planifiés
Une alternative à la méthode actuelle consiste à utiliser l'événement de MySQL. fonctionnalité. Les événements permettent l'exécution automatisée de tâches de base de données sur une base planifiée.
Exemple d'événement pour la troncature glissante
Voici un exemple d'événement qui supprimera les lignes de la table ' tableName ' qui ont plus de 30 jours :
SET @@GLOBAL.event_scheduler = ON; 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);
Avantages de l'utilisation Événements
Les événements offrent plusieurs avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!