Pubblicato il

MySQL Event Scheduler

Autori

Nel gestire grandi applicazioni Web si possono avere un sacco di righe di dati indesiderate. Ad esempio se un e-commerce è realizzato in modo da memorizzare in modo permanente la gestione del carrello dinamico, oppure la permanenza di vecchi listini divisi per gruppi d’acquisto, avremo la necessità nel tempo di cancellare questi dati dal database.

In questo articolo voglio spiegare un semplice suggerimento come utilizzare i MySQL Event Scheduler per l’eliminazione di righe di dati non più desiderati nel database.

Per abilitare la schedulazione degli eventi in MySQL bisogna eseguire la seguente query in PhpMyAdmin o in un qualsiasi altro ide per la gestione del vostro database:

SET GLOBAL event_scheduler = ON;
o
SET GLOBAL event_scheduler = 1;

Di seguito la query per creare un evento che ogni giorno cancella i dati dalla tabella del carrello di 10 giorni fà:

CREATE EVENT newEvent
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM cart WHERE created_at <= DATE_SUB(NOW(), INTERVAL 10 DAY) ;

Se si desidera modificare il tempo di esecuzione di un evento è possibile eseguendo la seguente query:

ALTER newEvent
ON SCHEDULE EVERY 5 HOUR
STARTS TIMESTAMP + 3 HOUR

Possiamo visualizzare tutti gli eventi in esecuzione:

SHOW EVENTS;

ed eliminare un evento:

DROP EVENT newEvents;