1. 程式人生 > 實用技巧 >MySQL中的事件排程器

MySQL中的事件排程器

事件排程器是類似linux 下的任務排程器 crontab , 將資料庫按照自定義的時間週期觸發某種操作,可以理解為事件觸發器。

適用於定期收集統計資訊,定期清理歷史資料,定期資料庫檢查(如,自動監控和恢復Slave失敗程序)

注意:在繁忙且要求效能的資料庫伺服器上要慎重部署和啟用排程器、過於複雜的處理更適合用程式設計實現、開啟和關閉事件排程器需要具有超級使用者許可權

create TABLE t14(id1 varchar(10),create_time datetime);
CREATE EVENT test_event_1 on SCHEDULE EVERY 5 SECOND DO INSERT
INTO test1.t14(id1,create_time) VALUES('test',now());

SHOW EVENTS   --檢視排程器狀態

SELECT * FROM t14

show VARIABLES LIKE '%scheduler%'       -- 檢視事件排程器狀態

開啟排程器,同時 show processlist 發現新產生一個後臺程序:

show PROCESSLIST

新建一個排程器,每隔1分鐘清空表 t14

CREATE EVENT trunc_test ON SCHEDULE EVERY 1 MINUTE DO TRUNCATE
TABLE test1.t14

一分鐘後。。。

如果排程器不再使用,可以禁用(disable)或者刪除(drop)

ALTER EVENT test_event_1 DISABLE
drop EVENT test_event_1