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

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

mysql event事件調度器的圖文代碼詳細說明

[摘要]下面小編就為大家帶來一篇老生常談mysql event事件調度器(必看篇)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧概述MySQL也有自己的事件調度器,簡單地可以理解為linux的crontab job,不過對于SQL應用來說,它的功能更齊全,也更易于維護。個人...
下面小編就為大家帶來一篇老生常談mysql event事件調度器(必看篇)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

概述

MySQL也有自己的事件調度器,簡單地可以理解為linux的crontab job,不過對于SQL應用來說,它的功能更齊全,也更易于維護。個人感覺如果數量創建太多的話,也可能影響DB性能,且不易調試

MySQL事件調度器的主要內容

總開關

參數event_scheduler為事件調度器的總開關,一般來說設置為ON或者OFF就好,不建議設置成disabled,如果設置為ON,show processlist可看到該線程


創建,修改,查看等語法

關于如何創建,修改event這里不做敘述,創建語法如下,具體的含義可參考下面關于event信息表介紹。也可以參考官網文檔鏈接,http://dev.mysql.com/doc/refman/5.6/en/create-event.html


查看創建好的event,在進入當前db后,show create event xxx\G



event的信息查詢和含義

查看某個event的狀態信息,可查看mysql.event或者information_schema.events,或者簡單地切到當前DB后執行show events; 三者的內容基本一致,information_schema無法做了下數據復制,更改了下列名稱和starts時間以便更好的閱讀。這里已information_schema.events里的信息為例解釋


EVENT_CATALOG:一般都是def,不管

EVENT_SCHEMA:event所在的schema

EVENT_NAME:event的名稱

DEFINER:event的定義者,和定義這個event時,默認selectcurrent_user()的結果一致,如果該user有super權限,可以指定為其他用戶

TIME_ZONE:event使用的時區,默認是system,建議別做修改

EVENT_BODY:一般都是SQL,不用管

EVENT_DEFINITION:該event的內容,可以是具體的insert等SQL,也可以是一個調用存儲過程的操作

EVENT_TYPE:這個參數比較重要,定義的時候指定,有兩個值:RECURRING和ONE TIME,RECURRING表示只要符合條件就會重復執行,而ONE TIME只會調用一次

EXECUTE_AT: 針對one-time類型的event有效,如果是RECURRING類型的event一般為NULL,表示該event的預計執行時間

INTERVAL_VALUE:針對RECURRING類型的event有效,表示執行間隔長度

INTERVAL_FIELD:針對RECURRING類型的event有效,表示執行間隔的單位,一般是SECOND,DAY等值,可參考創建語法

SQL_MODE:當前event采用的SQL_MODE

STARTS:針對RECURRING類型的event有效,表示一個event從哪個時間點點開始執行,和one-time的EXECUTE_AT功能類似。為NULL表示一符合條件就開始執行

ENDS:針對RECURRING類型的event有效,表示一個event到了哪個時間點后不再執行,如果為NULL就是永不停止

STATUS:一般有三個值,ENABLED, DISABLED和 SLAVESIDE_DISABLED,其中ENABLED表示激活這個event,該event只要符合其他條件就會執行;DISABLED狀態改event將不會執行,SLAVESIDE_DISABLED表示在從庫上不執行該event。需要特別注意在從庫上不要執行任何形式的event,因為如果主庫執行一次,復制到從庫后,從庫再執行一次的話,那就數據不一致了,一般來說直接禁用掉從庫上的總開關event_scheduler就行。

ON_COMPLETION:只有兩種值,PRESERVE和NOT PRESERVE,PRESERVE

CREATED:event的創建時間

LAST_ALTERED:event最新一次被修改的時間

LAST_EXECUTED:event最近一次執行的時間,如果為NULL表示從未執行過

EVENT_COMMENT:event的注釋信息

ORIGINATOR:當前event創建時的server-id,用于主從上的處理,比如SLAVESIDE_DISABLED

CHARACTER_SET_CLIENT:event創建時的客戶端字符集,即character_set_client

COLLATION_CONNECTION:event創建時的連接字符校驗規則,即collation_connection

DATABASE_COLLATION:event創建時的數據庫字符集校驗規則

EVENT的權限管理

1 設置event_scheduler系統變量,需要super_priv權限

2 創建,修改和刪除event需要該user用戶EVENT權限,該權限是schema級別的

3 對應于event的具體內容,需要對應的權限。比如event里有對某張表的insert操作,那么該user需要對該表的insert操作,不然LAST_EXECUTED一直會是NULL

EVENT的狀態查詢

通過以下命令查看DB啟動以來的event的相關信息統計

mysql> showglobal status like '%event%';
+--------------------------+-------+
 Variable_name   Value  
+--------------------------+-------+
 Com_alter_event   0  
 Com_create_event   2  
 Com_drop_event   2  
 Com_show_binlog_events   0  
 Com_show_create_event   191  
 Com_show_events   40  
 Com_show_relaylog_events   0  
+--------------------------+-------+
7 rows in set(0.00 sec)

使用建議

1 如果主庫已經執行過,從庫上務必要保證event不會執行(除非故意在slave上創建的event)

2 創建,刪除等操作嚴禁直接操作mysql.event表,而是通過create等正規語法實現,不然會導致元數據混亂,各種莫名其妙的問題隨之產生,比如event不執行或者重復執行。這時一般只有重啟DB才能解決 了。

3 創建的event涉及到海量數據變更的話,要做好充分測試,確保不影響現網服務

4 如果需要備份帶有event的DB,mysqldump時需要加上--event參數

以上就是mysql event事件調度器的圖文代碼詳解的詳細內容,更多請關注php中文網其它相關文章!


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




主站蜘蛛池模板: 亚洲黄视频在线观看 | 人人干在线| 小泽玛利亚久久一区二区三区 | 天天舔天天色 | 日本免费色 | 深夜视频免费在线观看 | 天堂中文在线资源 | 日韩精品手机在线 | 日日摸人人拍人人澡 | 青草网址 | 小黄鸭b站视频在线 | 日韩免费大片 | 伊人色综合7777 | 中文字幕视频在线观看 | 天天狠天天透天干天天怕处 | 日韩在线第三页 | 日韩亚洲一区中文字幕在线 | 日本高清在线一区二区三区 | 婷婷综合缴情亚洲狠狠图片 | 欧美天天 | 日韩一级高清 | 欧美亚洲国产精品 | 人人狠狠综合久久亚洲88 | 天天想天天干 | 日韩亚洲一区中文字幕 | 日本黄网站高清色大全 | 欧美艳星nikki办公室 | 天天影视综合色区 | 中文字幕乱码系列免费 | 一级毛片a| 四虎影院大全 | 日本成人免费在线观看 | 伊人久久中文字幕久久cm | 热99re久久国超精品首页 | 日韩欧美亚洲综合久久影院d3 | 四虎网站 | 亚洲免费观看网站 | 亚洲一区二区三区免费观看 | 自拍亚洲 | 亚洲精品在线网址 | 色综合五月 |