遇到乙個需求是每隔一天,清空一次某個快取表的資料。想到了mysql的事件定時,記錄一下操作過程
開啟事件配置:
#重啟服務後失效
set global event_scheduler = 1;
或 mysql配置檔案my.ini/my.cnf 在 [mysqld] 塊中新增:event_scheduler=on (推薦)重啟mysql服務。檢視是否開啟事件:
on說明已開啟
建立儲存過程
#建立儲存過程
delimiter |
drop procedure if exists clear_table_t1 |
create procedure clear_table_t1()
begin
delete from `t1`; #這裡可以根據自己的業務填充相對應的邏輯
end|
建立定時任務
create event if not exists time_clear_table_t1
on schedule every 86400 second
on completion preserve
do call clear_table_t1();
開啟定時任務
#開啟定時器
alter event time_clear_table_t1 on
completion preserve enable;
至此,建立了乙個每天清空一次 t1 表的事件定時計畫任務
刪除剛才建立的儲存過程:
#刪除儲存過程
drop procedure clear_table_t1;
關閉剛才開啟的定時器:
#關閉定時器
alter event time_clear_table_t1 on
completion preserve disable;
Mysql定時器定時刪除表資料
由於測試環境有張日誌表沒定時2分鐘程式就 資料,導致不到1乙個月時間,這張日誌表就占用了6.7g的空間,但是日誌重新整理較快,有些日誌就沒什麼作用,就寫了個定時器,定期刪除這張表的資料 首先先檢視mysql是否開啟定時任務開關 value為on則已開啟,off則關閉 如果是off,就先開啟 set ...
MYSQL 定時定時刪除表分割槽
以下實現建立定時事件定時刪除表分割槽,刪除距今最早的七個分割槽 1 建立儲存過程 end2 建立定時事件,定時呼叫上面建立的del partition函式 create event auto del partition on schedule every 1 day starts 2020 04 2...
Mysql事件 定時清空表
1.設定開啟event scheduler set global event scheduler 1 2.驗證event scheduler是否已經開啟 show variables like event 值為 on 表明已開啟show variables like event scheduler ...