mysql定時清除資料
阿新 • • 發佈:2021-10-18
一個專案如果規劃不合理,每天會產生很多條告警,導致查詢速度變慢。同時由於資料量過大可能會導致磁碟空間不夠的情況。一般可以通過程式程式碼定時清理的方式來進行。
現在可以通過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。