六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

詳細說明MySQL新增的技巧(事件調度器)案例

[摘要]概述事件調度器是MySQL5.1后新增的功能,可以將數據庫按自定義的時間周期觸發某種操作,可以理解為時間觸發器,類似于linux系統下面的任務調度器crontab,或者類似與window下面的計劃任務。值得一提的是MySQL的事件調度器可以精確到每秒鐘執行一個任務,而操作系統的計劃任務(如:Lin...

概述

事件調度器是MySQL5.1后新增的功能,可以將數據庫按自定義的時間周期觸發某種操作,可以理解為時間觸發器,類似于linux系統下面的任務調度器crontab,或者類似與window下面的計劃任務。值得一提的是MySQL的事件調度器可以精確到每秒鐘執行一個任務,而操作系統的計劃任務(如:Linux下的CRON或Windows下的任務計劃)只能精確到每分鐘執行一次。

查看事件功能是否開啟

在使用事件這個功能,首先要保證你的mysql的版本是5.1以上,然后還要查看你的mysql服務器上的事件是否開啟。
查看事件是否開啟,使用如下命令查看:

#方式一
SHOW VARIABLES LIKE 'event_scheduler';
#方式二
SELECT @@event_scheduler;
#方式三
SHOW PROCESSLIST;

#查看事件狀態
SHOW EVENTS;

如果看到event_scheduler為on或者PROCESSLIST中顯示有event_scheduler的信息說明就已經開啟了事件。如果顯示為off或者在PROCESSLIST中查看不到event_scheduler的信息,那么就說明事件沒有開啟,我們需要開啟它。

開啟事件功能

方式一、通過動態參數修改

SET GLOBAL event_scheduler = ON;

更改完這個參數就立刻生效了,但是重啟mysql又還原了,即設置不能跨重啟。
方式二、更改配置文件然后重啟
在my.cnf中的[mysqld]部分添加如下內容,然后重啟mysql。

event_scheduler=ON;

一勞永逸,需要能夠修改數據庫配置的權限。

方式三、直接在啟動命令加上“–event_scheduler=1”

mysqld ... --event_scheduler=ON

事件的語法

1. 創建事件

CREATE
    [DEFINER = { user   CURRENT_USER }]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE   DISABLE   DISABLE ON SLAVE]
    [COMMENT 'comment']
    DO event_body;

schedule:
    AT timestamp [+ INTERVAL interval] ...
       EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]
interval:
  quantity {YEAR   QUARTER   MONTH   DAY   HOUR   MINUTE  
              WEEK   SECOND   YEAR_MONTH   DAY_HOUR  
DAY_MINUTE  DAY_SECOND   HOUR_MINUTE  
HOUR_SECOND   MINUTE_SECOND}

DEFINER: 定義事件執行的時候檢查權限的用戶。
ON SCHEDULE schedule: 定義執行的時間和時間間隔。
ON COMPLETION [NOT] PRESERVE: 定義事件是一次執行還是永久執行,默認為一次執行,即NOT PRESERVE。
ENABLE DISABLE DISABLE ON SLAVE: 定義事件創建以后是開啟還是關閉,以及在從上關閉。如果是從服務器自動同步主上的創建事件的語句的話,會自動加上DISABLE ON SLAVE。
COMMENT 'comment': 定義事件的注釋。

2. 更改事件

ALTER
    [DEFINER = { user   CURRENT_USER }]
    EVENT event_name
    [ON SCHEDULE schedule]
    [ON COMPLETION [NOT] PRESERVE]
    [RENAME TO new_event_name]
    [ENABLE   DISABLE   DISABLE ON SLAVE]
    [COMMENT 'comment']
    [DO event_body]

3. 刪除事件的語法

DROP EVENT [IF EXISTS] event_name;

事件使用舉例

1. 創建事件

舉例一
定時每隔3秒向表test2中插入數據

create event event_insert_t2
on schedule every 3 second
on completion preserve
do insert into test2(department,time_v) value('1',now());

執行結果


事件執行結果

舉例二
創建一個10分鐘后清空test表數據的事件

CREATE EVENT IF NOT EXISTS event_truncate_test2
ON SCHEDULE
AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE
DO TRUNCATE TABLE test2;

舉例三
創建一個在2015-04-17 14:42:00時刻清空test表數據的事件

DROP EVENT IF EXISTS event_truncate_test2;
CREATE EVENT event_truncate_test2
ON SCHEDULE
AT TIMESTAMP '2015-04-17 14:42:00'
DO TRUNCATE TABLE test2;

舉例四
5天后開啟每天定時3秒向表test2中插入數據,一個月后停止執行

CREATE EVENT IF NOT EXISTS event_truncate_test2
ON SCHEDULE EVERY 3 SECOND
STARTS CURRENT_TIMESTAMP + INTERVAL 5 day
ENDS CURRENT_TIMESTAMP + INTERVAL  1 month
ON COMPLETION PRESERVE
DO INSERT INTO test2(department,time_v) VALUES('1',NOW());

修改事件舉例

舉例一
臨時關閉事件

alter event event_insert_t2 disable;

其他類似創建事件。

刪除事件舉例

DROP EVENT IF EXISTS event_insert_t2;

事件調用存儲過程函數如同普通調用。

事件的優缺點及應用場景

  1. 優點

  2. 定時任務由dba統一管理,避免部署在操作系統層。

  3. 減少系統管理員產生誤操作的風險。

  4. 有利于后續的管理和維護。

  5. 缺點

  6. 在繁忙且要求性能的數據庫上慎重部署和啟用調度器。

  7. 過于復雜的處理更適合使用程序實現。

  8. 開啟和關閉事件需要具有超級用戶權限。

  9. 應用場景
    適用于定期收集統計信息,定期清除歷史數據,定期數據庫檢查等等。

【相關推薦】

1. 免費mysql在線視頻教程

2. MySQL最新手冊教程

3. 布爾教育燕十八mysql入門視頻教程

以上就是詳解MySQL新增的功能(事件調度器)實例的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 天天色综合三 | 伊人高清 | 四虎免费影院4hu永久免费 | 天天躁天天碰天天看 | 在线另类 | 日韩专区亚洲国产精品 | 香蕉视频一级片 | 亚洲天堂影院 | 四虎影院成人 | 日日干狠狠 | 亚洲精品伊人 | 色综合久久六月婷婷中文字幕 | 色第一页 | 热re99久久国产精品 | 香蕉网站狼人久久五月亭亭 | 午夜视频在线观看完整版 | 欧美一区不卡二区不卡三区 | 欧美亚洲综合网 | 丝袜美女啪啪 | 亚洲国产成人久久综合碰 | 亚洲视频在线免费看 | 中文字幕一区波多野结衣 | 最新精品女神在线观看 | 中文字幕第一页亚洲 | 伊人久久大线蕉香港三级 | 日韩精品欧美国产精品忘忧草 | 日本三级在线 | 字幕网资源站中文字幕 | 天堂网在线最新版www中文网 | 色婷婷激情综合 | 色综合成人网 | 青青在线播放 | 青草视频在线观看免费网站 | 伊人久久大香线蕉avapp下载 | 天天久 | 性色视频在线观看 | 日本高清色本在线www游戏 | 欧美做真爱免费无遮挡 | 天天爽夜夜爽人人爽 | 日韩亚洲欧美一区 | 视频一区二区三区在线观看 |