MySQL的定時器(Timer)是MySQL5.1版本中引入的一項新功能。因為它的出現(xiàn),我們可以在MySQL中以一定的規(guī)律自動執(zhí)行一些任務,從而減輕人工的工作負擔。
使用定時器可以實現(xiàn)MySQL的自動備份、清理日志、觸發(fā)存儲過程或觸發(fā)器等等。定時器的實現(xiàn)需要用到MySQL的事件調度器。因此在使用定時器前,需要判斷系統(tǒng)是否啟用了事件調度器。
-- 判斷是否啟用事件調度器 SHOW VARIABLES LIKE 'event_scheduler';
如果輸出結果中的Value值是ON,說明事件調度器已啟用;否則,需要手動開啟。
-- 開啟事件調度器 SET GLOBAL event_scheduler = ON;
開啟了事件調度器之后,就可以使用定時器了。下列代碼為每天的0點執(zhí)行一次名為“my_backup”的存儲過程。
-- 新建定時器 CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTS '2019-09-25 00:00:00' DO BEGIN CALL my_backup(); END
除了按日期定時執(zhí)行任務,還可以按小時、分鐘等頻率執(zhí)行任務。下列代碼為每隔一小時執(zhí)行一次名為“my_task”的存儲過程。
-- 新建定時器 CREATE EVENT my_event ON SCHEDULE EVERY 1 HOUR DO BEGIN CALL my_task(); END
當然,定時器還支持更復雜的定時計劃,比如每個月第一天執(zhí)行、每周五晚上10點執(zhí)行等等??梢愿鶕?jù)自己的需求進行設置,從而實現(xiàn)更加便捷的操作。
總之,MySQL的定時器用于在一定的時間間隔內(nèi)自動執(zhí)行一些任務,方便實現(xiàn)定時備份、定時做數(shù)據(jù)統(tǒng)計、定時更新等等操作,免去了人工操作的繁瑣和耗時。
上一篇css 不貼邊框
下一篇mysql的實訓目的