1. 程式人生 > >Mysql定時器定時刪除表資料

Mysql定時器定時刪除表資料

     由於測試環境有張日誌表沒定時2分鐘程式就狂插資料,導致不到1一個月時間,這張日誌表就佔用了6.7G的空間,但是日誌重新整理較快,有些日誌就沒什麼作用,就寫了個定時器,定期刪除這張表的資料

    首先先檢視mysql是否開啟定時任務開關

    # SHOW VARIABLES LIKE 'event_scheduler';

    

Value為ON則已開啟,OFF則關閉

 如果是OFF,就先開啟:

#  SET GLOBAL event_scheduler = ON;

然後建立我們想要的定時器

DELIMITER $$
DROP EVENT IF EXISTS deleteLog;
CREATE EVENT  deleteLog
ON SCHEDULE EVERY 300 SECOND
ON COMPLETION PRESERVE
DO BEGIN
  delete from ftp_log where TO_DAYS(now())-TO_DAYS(createOn)>2;
END$$
DELIMITER ;

該指令碼的意思是:每300秒執行一次計劃,執行的動作為刪除兩天前的資料

建立完成後,檢視定時器

# select * from  mysql.event;