Mysql基礎教程 mysql進階

Mysql定期維護



Mysql的定時器


所謂的定時器,指的是在某個時間段去執行同樣的代碼。比如鬧鐘。每到指定的時間鬧鈴就會響。同樣的,我們這個定時器,只要滿足我們的一個定時條件,只要說我們每隔5秒,或者每隔1秒,那么這里面每隔5秒,或者每隔1秒就是它的定時條件,只要滿足這個定時條件,那么它就會去執行之前給它預定的這樣一個執行代碼。



Mysql設置定時器


mysql版本是從5.1開始才支持event的。如果你的版本低于5.1就先升級版本吧。查看版本的方法有很多  


select version();


查看是否開啟evevt與開啟evevt


MySQL evevt功能默認是關閉的,可以使用下面的語句來看evevt的狀態,如果是OFF或者0,表示是關閉的。


show VARIABLES LIKE '%sche%';


開啟evevt功能。


SET GLOBAL event_scheduler = 1;


示例


進入mysql的服務器,我們在使用這個定時器之前,我們要確定mysql的版本,只有在確定這個版本那么它才支持這個定時器,在這里查看mysql的版本,這里的版本是5.5.19,顯然是支持mysql的定時器的。


0.png


也可以通過這個命令去了解這個版本號。


1.png


那么在使用這個定時器的時候我們就要開啟這個定時器,除了我們要了解這個版本號外,我們還要了解我們當前的這個版本是否開啟了定時器,因為這個定時器在默認的情況下是關閉的,這里面是開啟的。


2.png


也可以給它關掉,利用這個全局變量,設置為1,那么這個定時器就是開啟的。


3.png


開啟后我們可以利用這個看到當前這個變量是開啟還是關閉的。


4.png



創建定時器


創建事件test_event(其作用:每隔一秒自動調用一段sql語句)


drop event if exists test_event;
create event test_event
on schedule every 1 second
on completion preserve disable
do call test_proce();

 

--注意:當為on completion preserve 的時候,當event到期了,event會被disable,但是該event還是會存在,當為on completion not preserve的時候,當event到期的時候,該event會被自動刪除掉。


開啟事件test_event


alter event test_event on completion preserve enable;


關閉事件test_event


alter event test_event on completion preserve disable;


現在我們要去創建一個定時器,在創建之前我們要創建這樣一張表,就是定時的向這個數據庫去插入一條記錄,首先,選擇數據庫。


5.png


先刪除這張表。


6.png


再創建這張表,這個存儲過程主要是用來向這張表中去插入一條數據記錄。


7.png


如果存在這個存儲過程就刪掉。


8.png


修改分隔符。


9.png


再創建這個存儲過程。


91.png


創建好之后,把它的分隔符修改好。


92.png


這里面就是我們創建的存儲過程,這個就是向我們的這個表中去插入一條數據記錄,現在我們要創建一個定時器,這個定時器就是每隔1秒,或者每隔多少時間,我們就去執行這個存儲過程,在創建這個定時器之前,我們還是先考慮如果存在這個定時器的話我們就把它刪掉。


93.png


創建這個定時器。


94.png


開啟這個定時器。


95.png

                                                                                                            

向我們這張數據庫表插入數據,去查詢這個數據,現在已經開始查詢了。


96.png


現在我們再去查詢的時候,每隔1秒就會去執行。


97.png


如果我們現在把這個定時器給它關閉了。


98.png


再去查詢一下。


99.png


再去執行一下,還是原來的時間,也就是說,我們把這個定時器關閉了,關閉之后它就不再去執行我們的這個存儲過程了。所謂的定時器就是在規定的時間內,重復的去執行這段代碼。


990.png



總結


我們這節主要講解了對于mysql當中的定時維護,那么這個當中的定時維護主要運用了我們當中的定時器,我們的這個定時器它可以去執行一段固定的代碼,我們開啟的這個命令就是通過全局變量來設置,把它的這個變量設置為1,相當于就是把它開啟了,開啟之后我們再去創建這個定時器,創建這個定時器這個語法create event test_event后面加定時器的名字,然后這里面就是固定的寫法on schedule every 1 second這是需要執行的任務,這里是每隔1秒,on completion preserve disable這段代碼表示如果我現在把這個定時器停掉了,實際上可以下次再啟用它,do call test_proce();這個代表這個存儲器需要執行的代碼,這里面就是我們調的存儲過程。


這個時候我們再來查詢一次原來的。


991.png


重新把這個定時器開啟。


992.png


再查詢一下它的時間,現在這個時間已經又改變了,也就是說,我們這個定時器可以給它開啟和關閉。


993.png


現在把這個定時器給它關閉,否則他會一直操作下去。


994.png



【本文由麥子學院獨家原創,轉載請注明出處并保留原文鏈接】

logo
? 2012-2016 www.jvbprd.live
蜀ICP備13014270號-4 Version 5.0.0 release20160127

免費領取價值1888元求職寶典!

客服熱線 400-862-8862

回到頂部

彩票安徽25选5 杏彩苹果 天龙八部100怎么赚钱 腾讯麻将里的赖子是啥意思 汽修店赚钱方案 大丰彩票群 开食品店赚钱吗 qq走路赚钱是真的吗 渡劫5龙宫赚钱 人首先要学会赚钱 网上赚钱的游戏靠谱吗 梦幻西游手游 马上赚钱V2.1.6 安利体验馆如何赚钱啊 好友赣南麻将3.2 麻将娱乐棋牌 黑色沙漠 61级赚钱