mysql 学习---->事件调度器

来源:互联网 发布:火球理财java面试题 编辑:程序博客网 时间:2024/05/22 06:48

一、理论:

1.优势:
1)减少系统管理员的操作风险,有利于数据库整体迁移。因数据库迁移时即可同时迁移调度事件
2.场景:
1)定期收集统计信息
2)清理历史数据
3)数据库检查
3.要点:
1)在性能要求高且重要的数据库中要慎重部署和启用调度器
2)过于复杂的更适合用程序
3)开启和关闭事件调度器需要具有超级用户权限

二、实践:

[sql] view plaincopy
  1. mysql> use test1;  
  2. Reading table information for completion of table and column names  
  3. You can turn off this feature to get a quicker startup with -A  
  4.   
  5. Database changed  
  6. mysql> create table test(id1 varchar(10),create_time datetime);  
  7. Query OK, 0 rows affected (0.02 sec)  
  8.   
  9. mysql> create event test_event_1  
  10.     -> on schedule  
  11.     -> every 5 second   
  12.     -> do   
  13.     -> insert into test1.test(id1,create_time)  
  14.     -> values ('test',now());  
  15. Query OK, 0 rows affected (0.01 sec)  
  16.   
  17. mysql> show events \G;  
  18. *************************** 1. row ***************************  
  19.                   Db: test1  
  20.                 Name: test_event_1  
  21.              Definer: root@localhost  
  22.            Time zone: SYSTEM  
  23.                 Type: RECURRING  
  24.           Execute atNULL  
  25.       Interval value: 5  
  26.       Interval field: SECOND  
  27.               Starts: 2015-10-14 06:33:17  
  28.                 Ends: NULL  
  29.               Status: ENABLED  
  30.           Originator: 1  
  31. character_set_client: utf8  
  32. collation_connection: utf8_general_ci  
  33.   Database Collation: utf8_general_ci  
  34. 1 row in set (0.01 sec)  
  35.   
  36. ERROR:   
  37. No query specified  
  38.   
  39. mysql> select * from test;  
  40. Empty set (0.00 sec)  
  41.   
  42. mysql> show variables like '%scheduler%';  
  43. +-----------------+-------+  
  44. | Variable_name   | Value |  
  45. +-----------------+-------+  
  46. | event_scheduler | OFF   |  
  47. +-----------------+-------+  
  48. 1 row in set (0.00 sec)  
  49.   
  50. mysql> set global event_scheduler = 1 ;  
  51. Query OK, 0 rows affected (0.00 sec)  
  52.   
  53. mysql> show variables like '%scheduler%';  
  54. +-----------------+-------+  
  55. | Variable_name   | Value |  
  56. +-----------------+-------+  
  57. | event_scheduler | ON    |  
  58. +-----------------+-------+  
  59. 1 row in set (0.00 sec)  
  60.   
  61. mysql> show processlist \G;  
  62. *************************** 1. row ***************************  
  63.      Id: 17  
  64.    User: root  
  65.    Host: localhost  
  66.      db: test1  
  67. Command: Sleep  
  68.    Time: 247901  
  69.   State:   
  70.    Info: NULL  
  71. *************************** 2. row ***************************  
  72.      Id: 21  
  73.    User: root  
  74.    Host: localhost  
  75.      db: test1  
  76. Command: Query  
  77.    Time: 0  
  78.   State: NULL  
  79.    Info: show processlist  
  80. *************************** 3. row ***************************  
  81.      Id: 22  
  82.    User: event_scheduler  
  83.    Host: localhost  
  84.      db: NULL  
  85. Command: Daemon  
  86.    Time: 1  
  87.   State: Waiting for next activation  
  88.    Info: NULL  
  89. rows in set (0.00 sec)  
  90.   
  91. ERROR:   
  92. No query specified  
  93.   
  94. mysql> select * from test;  
  95. +------+---------------------+  
  96. | id1  | create_time         |  
  97. +------+---------------------+  
  98. | test | 2015-10-14 06:33:57 |  
  99. | test | 2015-10-14 06:34:02 |  
  100. | test | 2015-10-14 06:34:07 |  
  101. | test | 2015-10-14 06:34:12 |  
  102. | test | 2015-10-14 06:34:17 |  
  103. | test | 2015-10-14 06:34:22 |  
  104. +------+---------------------+  
  105. rows in set (0.00 sec)  
  106.   
  107. mysql> create event trunc_test  
  108.     -> on schedule every 1 minute  
  109.     -> do truncate table test;  
  110. Query OK, 0 rows affected (0.00 sec)  
  111.   
  112. mysql> select * from test;  
  113. +------+---------------------+  
  114. | id1  | create_time         |  
  115. +------+---------------------+  
  116. | test | 2015-10-14 06:34:52 |  
  117. | test | 2015-10-14 06:34:57 |  
  118. | test | 2015-10-14 06:35:02 |  
  119. | test | 2015-10-14 06:35:07 |  
  120. | test | 2015-10-14 06:35:12 |  
  121. | test | 2015-10-14 06:35:17 |  
  122. | test | 2015-10-14 06:35:22 |  
  123. | test | 2015-10-14 06:35:27 |  
  124. | test | 2015-10-14 06:35:32 |  
  125. | test | 2015-10-14 06:35:37 |  
  126. +------+---------------------+  
  127. 10 rows in set (0.00 sec)  
  128.   
  129. mysql> select * from test;  
  130. +------+---------------------+  
  131. | id1  | create_time         |  
  132. +------+---------------------+  
  133. | test | 2015-10-14 06:37:52 |  
  134. | test | 2015-10-14 06:37:57 |  
  135. +------+---------------------+  
  136. rows in set (0.00 sec)  
  137.   
  138. mysql> show processlist \G;  
  139. *************************** 1. row ***************************  
  140.      Id: 17  
  141.    User: root  
  142.    Host: localhost  
  143.      db: test1  
  144. Command: Sleep  
  145.    Time: 248177  
  146.   State:   
  147.    Info: NULL  
  148. *************************** 2. row ***************************  
  149.      Id: 21  
  150.    User: root  
  151.    Host: localhost  
  152.      db: test1  
  153. Command: Query  
  154.    Time: 0  
  155.   State: NULL  
  156.    Info: show processlist  
  157. *************************** 3. row ***************************  
  158.      Id: 22  
  159.    User: event_scheduler  
  160.    Host: localhost  
  161.      db: NULL  
  162. Command: Daemon  
  163.    Time: 2  
  164.   State: Waiting for next activation  
  165.    Info: NULL  
  166. rows in set (0.00 sec)  
  167.   
  168. ERROR:   
  169. No query specified  
  170.   
  171. mysql> alter event trunc_test disable;  
  172. Query OK, 0 rows affected (0.02 sec)  
  173.   
  174. mysql> select * from test;  
  175. +------+---------------------+  
  176. | id1  | create_time         |  
  177. +------+---------------------+  
  178. | test | 2015-10-14 06:38:52 |  
  179. | test | 2015-10-14 06:38:57 |  
  180. | test | 2015-10-14 06:39:02 |  
  181. | test | 2015-10-14 06:39:07 |  
  182. | test | 2015-10-14 06:39:12 |  
  183. | test | 2015-10-14 06:39:17 |  
  184. | test | 2015-10-14 06:39:22 |  
  185. | test | 2015-10-14 06:39:27 |  
  186. | test | 2015-10-14 06:39:32 |  
  187. | test | 2015-10-14 06:39:37 |  
  188. +------+---------------------+  
  189. 10 rows in set (0.00 sec)  
  190.   
  191. mysql> select * from test;  
  192. +------+---------------------+  
  193. | id1  | create_time         |  
  194. +------+---------------------+  
  195. | test | 2015-10-14 06:38:52 |  
  196. | test | 2015-10-14 06:38:57 |  
  197. | test | 2015-10-14 06:39:02 |  
  198. | test | 2015-10-14 06:39:07 |  
  199. | test | 2015-10-14 06:39:12 |  
  200. | test | 2015-10-14 06:39:17 |  
  201. | test | 2015-10-14 06:39:22 |  
  202. | test | 2015-10-14 06:39:27 |  
  203. | test | 2015-10-14 06:39:32 |  
  204. | test | 2015-10-14 06:39:37 |  
  205. | test | 2015-10-14 06:39:42 |  
  206. | test | 2015-10-14 06:39:47 |  
  207. | test | 2015-10-14 06:39:52 |  
  208. | test | 2015-10-14 06:39:57 |  
  209. | test | 2015-10-14 06:40:02 |  
  210. | test | 2015-10-14 06:40:07 |  
  211. +------+---------------------+  
  212. 16 rows in set (0.00 sec)  
  213.   
  214. mysql> alter event test_event_1 disable;  
  215. Query OK, 0 rows affected (0.00 sec)  
  216.   
  217. mysql> select * from test;  
  218. +------+---------------------+  
  219. | id1  | create_time         |  
  220. +------+---------------------+  
  221. | test | 2015-10-14 06:38:52 |  
  222. | test | 2015-10-14 06:38:57 |  
  223. | test | 2015-10-14 06:39:02 |  
  224. | test | 2015-10-14 06:39:07 |  
  225. | test | 2015-10-14 06:39:12 |  
  226. | test | 2015-10-14 06:39:17 |  
  227. | test | 2015-10-14 06:39:22 |  
  228. | test | 2015-10-14 06:39:27 |  
  229. | test | 2015-10-14 06:39:32 |  
  230. | test | 2015-10-14 06:39:37 |  
  231. | test | 2015-10-14 06:39:42 |  
  232. | test | 2015-10-14 06:39:47 |  
  233. | test | 2015-10-14 06:39:52 |  
  234. | test | 2015-10-14 06:39:57 |  
  235. | test | 2015-10-14 06:40:02 |  
  236. | test | 2015-10-14 06:40:07 |  
  237. | test | 2015-10-14 06:40:12 |  
  238. | test | 2015-10-14 06:40:17 |  
  239. | test | 2015-10-14 06:40:22 |  
  240. | test | 2015-10-14 06:40:27 |  
  241. +------+---------------------+  
  242. 20 rows in set (0.00 sec)  
  243.   
  244. mysql>  drop event test_event_1;  
  245. Query OK, 0 rows affected (0.01 sec)  
  246.   
  247. mysql> show events \G;  
  248. *************************** 1. row ***************************  
  249.                   Db: test1  
  250.                 Name: trunc_test  
  251.              Definer: root@localhost  
  252.            Time zone: SYSTEM  
  253.                 Type: RECURRING  
  254.           Execute atNULL  
  255.       Interval value: 1  
  256.       Interval field: MINUTE  
  257.               Starts: 2015-10-14 06:34:48  
  258.                 Ends: NULL  
  259.               Status: DISABLED  
  260.           Originator: 1  
  261. character_set_client: utf8  
  262. collation_connection: utf8_general_ci  
  263.   Database Collation: utf8_general_ci  
  264. 1 row in set (0.00 sec)  
  265.   
  266. ERROR:   
  267. No query specified  
0 0
原创粉丝点击