sql >> Database teknologi >  >> RDS >> Mysql

Hvad er den bedste måde at slette gamle rækker fra MySQL på en rullende basis?

Prøv at oprette en begivenhed, der automatisk kører på databasen efter det ønskede tidsinterval.

Her er et eksempel:Hvis du ønsker at slette poster, der er mere end 30 dage gamle, fra en tabel 'tableName', skal du have kolonneindtastningen 'datetime'. Derefter kører følgende forespørgsel hver dag, hvilket vil udføre den nødvendige oprydningshandling.

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)

Vi skal tilføje ON COMPLETION PRESERVE at holde arrangementet efter hvert løb. Du kan finde mere info her:http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/



  1. Er SQL Server Unique Key også et indeks?

  2. Hurtigste metode til at tage MySQL Backup and Restore

  3. CURTIME() Eksempler – MySQL

  4. Hvordan nulstiller jeg mysql root adgangskode?