欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

老生常談mysql event事件調(diào)度器(必看篇)

 更新時(shí)間:2017年03月29日 09:02:48   投稿:jingxian  
下面小編就為大家?guī)硪黄仙U刴ysql event事件調(diào)度器(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

概述

MySQL也有自己的事件調(diào)度器,簡(jiǎn)單地可以理解為linux的crontab job,不過對(duì)于SQL應(yīng)用來說,它的功能更齊全,也更易于維護(hù)。個(gè)人感覺如果數(shù)量創(chuàng)建太多的話,也可能影響DB性能,且不易調(diào)試。

MySQL事件調(diào)度器的主要內(nèi)容

總開關(guān)

參數(shù)event_scheduler為事件調(diào)度器的總開關(guān),一般來說設(shè)置為ON或者OFF就好,不建議設(shè)置成disabled,如果設(shè)置為ON,show processlist可看到該線程


創(chuàng)建,修改,查看等語(yǔ)法

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


查看創(chuàng)建好的event,在進(jìn)入當(dāng)前db后,show create event xxx\G



event的信息查詢和含義

查看某個(gè)event的狀態(tài)信息,可查看mysql.event或者information_schema.events,或者簡(jiǎn)單地切到當(dāng)前DB后執(zhí)行show events; 三者的內(nèi)容基本一致,information_schema無法做了下數(shù)據(jù)復(fù)制,更改了下列名稱和starts時(shí)間以便更好的閱讀。這里已information_schema.events里的信息為例解釋


EVENT_CATALOG:一般都是def,不管

EVENT_SCHEMA:event所在的schema

EVENT_NAME:event的名稱

DEFINER:event的定義者,和定義這個(gè)event時(shí),默認(rèn)selectcurrent_user()的結(jié)果一致,如果該user有super權(quán)限,可以指定為其他用戶

TIME_ZONE:event使用的時(shí)區(qū),默認(rèn)是system,建議別做修改

EVENT_BODY:一般都是SQL,不用管

EVENT_DEFINITION:該event的內(nèi)容,可以是具體的insert等SQL,也可以是一個(gè)調(diào)用存儲(chǔ)過程的操作

EVENT_TYPE:這個(gè)參數(shù)比較重要,定義的時(shí)候指定,有兩個(gè)值:RECURRING和ONE TIME,RECURRING表示只要符合條件就會(huì)重復(fù)執(zhí)行,而ONE TIME只會(huì)調(diào)用一次

EXECUTE_AT: 針對(duì)one-time類型的event有效,如果是RECURRING類型的event一般為NULL,表示該event的預(yù)計(jì)執(zhí)行時(shí)間

INTERVAL_VALUE:針對(duì)RECURRING類型的event有效,表示執(zhí)行間隔長(zhǎng)度

INTERVAL_FIELD:針對(duì)RECURRING類型的event有效,表示執(zhí)行間隔的單位,一般是SECOND,DAY等值,可參考創(chuàng)建語(yǔ)法

SQL_MODE:當(dāng)前event采用的SQL_MODE

STARTS:針對(duì)RECURRING類型的event有效,表示一個(gè)event從哪個(gè)時(shí)間點(diǎn)點(diǎn)開始執(zhí)行,和one-time的EXECUTE_AT功能類似。為NULL表示一符合條件就開始執(zhí)行

ENDS:針對(duì)RECURRING類型的event有效,表示一個(gè)event到了哪個(gè)時(shí)間點(diǎn)后不再執(zhí)行,如果為NULL就是永不停止

STATUS:一般有三個(gè)值,ENABLED, DISABLED和 SLAVESIDE_DISABLED,其中ENABLED表示激活這個(gè)event,該event只要符合其他條件就會(huì)執(zhí)行;DISABLED狀態(tài)改event將不會(huì)執(zhí)行,SLAVESIDE_DISABLED表示在從庫(kù)上不執(zhí)行該event。需要特別注意在從庫(kù)上不要執(zhí)行任何形式的event,因?yàn)槿绻鲙?kù)執(zhí)行一次,復(fù)制到從庫(kù)后,從庫(kù)再執(zhí)行一次的話,那就數(shù)據(jù)不一致了,一般來說直接禁用掉從庫(kù)上的總開關(guān)event_scheduler就行。

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

CREATED:event的創(chuàng)建時(shí)間

LAST_ALTERED:event最新一次被修改的時(shí)間

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

EVENT_COMMENT:event的注釋信息

ORIGINATOR:當(dāng)前event創(chuàng)建時(shí)的server-id,用于主從上的處理,比如SLAVESIDE_DISABLED

CHARACTER_SET_CLIENT:event創(chuàng)建時(shí)的客戶端字符集,即character_set_client

COLLATION_CONNECTION:event創(chuàng)建時(shí)的連接字符校驗(yàn)規(guī)則,即collation_connection

DATABASE_COLLATION:event創(chuàng)建時(shí)的數(shù)據(jù)庫(kù)字符集校驗(yàn)規(guī)則

EVENT的權(quán)限管理

1 設(shè)置event_scheduler系統(tǒng)變量,需要super_priv權(quán)限

2 創(chuàng)建,修改和刪除event需要該user用戶EVENT權(quán)限,該權(quán)限是schema級(jí)別的

3 對(duì)應(yīng)于event的具體內(nèi)容,需要對(duì)應(yīng)的權(quán)限。比如event里有對(duì)某張表的insert操作,那么該user需要對(duì)該表的insert操作,不然LAST_EXECUTED一直會(huì)是NULL

EVENT的狀態(tài)查詢

通過以下命令查看DB啟動(dòng)以來的event的相關(guān)信息統(tǒng)計(jì)

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 如果主庫(kù)已經(jīng)執(zhí)行過,從庫(kù)上務(wù)必要保證event不會(huì)執(zhí)行(除非故意在slave上創(chuàng)建的event)

2 創(chuàng)建,刪除等操作嚴(yán)禁直接操作mysql.event表,而是通過create等正規(guī)語(yǔ)法實(shí)現(xiàn),不然會(huì)導(dǎo)致元數(shù)據(jù)混亂,各種莫名其妙的問題隨之產(chǎn)生,比如event不執(zhí)行或者重復(fù)執(zhí)行。這時(shí)一般只有重啟DB才能解決 了。

3 創(chuàng)建的event涉及到海量數(shù)據(jù)變更的話,要做好充分測(cè)試,確保不影響現(xiàn)網(wǎng)服務(wù)

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

以上這篇老生常談mysql event事件調(diào)度器(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    SavePoint是數(shù)據(jù)庫(kù)事務(wù)中的一個(gè)概念, 可以將整個(gè)事務(wù)切割為不同的小事務(wù), 可以選擇將狀態(tài)回滾到某個(gè)小事務(wù)發(fā)生時(shí)的樣子,本文給大家分享MySQL事務(wù)的SavePoint重要操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-01-01
  • MySQL8.0 Undo Tablespace管理詳解

    MySQL8.0 Undo Tablespace管理詳解

    本文主要介紹了MySQL8.0 Undo Tablespace管理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • MySQL數(shù)據(jù)庫(kù)的23個(gè)注意事項(xiàng)

    MySQL數(shù)據(jù)庫(kù)的23個(gè)注意事項(xiàng)

    使用MySQL,安全問題不能不注意。以下是MySQL提示的23個(gè)注意事項(xiàng)
    2010-03-03
  • MySQL 觸發(fā)器的基礎(chǔ)操作(六)

    MySQL 觸發(fā)器的基礎(chǔ)操作(六)

    這篇文章主要為大家詳細(xì)介紹了MySQL 觸發(fā)器的基礎(chǔ)操作,告訴大家什么是MySQL觸發(fā)器,如何查看觸發(fā)器,感興趣的小伙伴們可以參考一下
    2016-08-08
  • MySQL中表復(fù)制:create table like 與 create table as select

    MySQL中表復(fù)制:create table like 與 create table as select

    這篇文章主要介紹了MySQL中表復(fù)制:create table like 與 create table as select,需要的朋友可以參考下
    2014-12-12
  • Mysql Sql 語(yǔ)句練習(xí)題(50道)

    Mysql Sql 語(yǔ)句練習(xí)題(50道)

    mysql一直作為比較熱門的數(shù)據(jù)庫(kù)存儲(chǔ),搭配php使用簡(jiǎn)直是絕配,mysql的sql語(yǔ)句也是很重要的一門課,這里為大家分享一下sql語(yǔ)句,大家可以試試
    2020-12-12
  • mysql中的join和where優(yōu)先級(jí)順序解讀

    mysql中的join和where優(yōu)先級(jí)順序解讀

    這篇文章主要介紹了mysql中的join和where優(yōu)先級(jí)順序解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Mysql中 IFNULL函數(shù)的使用詳解

    Mysql中 IFNULL函數(shù)的使用詳解

    IFNULL()函數(shù)在MySQL中用來檢查第一個(gè)表達(dá)式是否為NULL,非NULL則返回第一個(gè)值,否則返回第二個(gè)值,本文就來詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2024-09-09
  • MySQL存儲(chǔ)Json字符串遇到的問題與解決方法

    MySQL存儲(chǔ)Json字符串遇到的問題與解決方法

    要在MySQL中存儲(chǔ)數(shù)據(jù),必須定義數(shù)據(jù)庫(kù)和表結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)Json字符串遇到的問題與解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Linux服務(wù)器中MySQL遠(yuǎn)程連接的開啟方法

    Linux服務(wù)器中MySQL遠(yuǎn)程連接的開啟方法

    今天在Linux服務(wù)器上安裝了msyql數(shù)據(jù)庫(kù),在本地訪問的時(shí)候可以訪問,但是我想通過遠(yuǎn)程的方式訪問的時(shí)候就不能訪問了,查詢資料后發(fā)現(xiàn),Linux下MySQL默認(rèn)安裝完成后只有本地訪問的權(quán)限,沒有遠(yuǎn)程訪問的權(quán)限,需要你給指定用戶設(shè)置訪問權(quán)限才能遠(yuǎn)程訪問該數(shù)據(jù)庫(kù)
    2017-06-06

最新評(píng)論