mysql事件定時刪除表資料

2021-09-29 06:01:53 字數 1264 閱讀 3008

遇到乙個需求是每隔一天,清空一次某個快取表的資料。想到了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 ...