1. 程式人生 > 其它 >mysql定時清除資料

mysql定時清除資料

一個專案如果規劃不合理,每天會產生很多條告警,導致查詢速度變慢。同時由於資料量過大可能會導致磁碟空間不夠的情況。一般可以通過程式程式碼定時清理的方式來進行。

現在可以通過MySql的時間進行定時清理,讓資料庫自己去清理過期資料。

建立事件

現在解釋一下

第一行,表明了這個事件是由alex建立,事件名稱為date_clean

第二行,表示這個事件定期執行

第三行,執行週期為每天一次

第四行,事件預設狀態為不啟動,開發是請寫ENABLE或者不寫

第五行,表明定期執行的Sql語句,上圖語句表示刪除刪除30天之前的資料

Navicat建立事件

選擇事件,點選新建事件

定義中填寫需要執行的sql語句

計劃頁籤填寫執行週期,或者執行時間

點選儲存即可

啟動和停止事件

啟動 ALTER EVENT `mydatabase`.`alarm_clean` ENABLE;

停止 ALTER EVENT ` mydatabase `.`alarm_clean` ENABLE;

注意

Mysql預設是不開啟事件執行的

執行 show variables like 'event_scheduler';

如果是OFF的話則需要執行set global event_scheduler=1;

否則事件將不會被觸發。

同時需要修改my.cnf,在[mysqld]下增加event_scheduler=ON,防止重啟服務後event_scheduler被重置成OFF。