mysql学习记录(十一)--事件调度器_MySQL
程序员文章站
2022-04-16 19:00:14
...
一、理论:
1.优势:
1)减少系统管理员的操作风险,有利于数据库整体迁移。因数据库迁移时即可同时迁移调度事件
2.场景:
1)定期收集统计信息
2)清理历史数据
3)数据库检查
3.要点:
1)在性能要求高且重要的数据库中要慎重部署和启用调度器
2)过于复杂的更适合用程序
3)开启和关闭事件调度器需要具有超级用户权限
二、实践:
mysql> use test1; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> create table test(id1 varchar(10),create_time datetime); Query OK, 0 rows affected (0.02 sec) mysql> create event test_event_1 -> on schedule -> every 5 second -> do -> insert into test1.test(id1,create_time) -> values ('test',now()); Query OK, 0 rows affected (0.01 sec) mysql> show events \G; *************************** 1. row *************************** Db: test1 Name: test_event_1 Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 5 Interval field: SECOND Starts: 2015-10-14 06:33:17 Ends: NULL Status: ENABLED Originator: 1 character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci 1 row in set (0.01 sec) ERROR: No query specified mysql> select * from test; Empty set (0.00 sec) mysql> show variables like '%scheduler%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+ 1 row in set (0.00 sec) mysql> set global event_scheduler = 1 ; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%scheduler%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | ON | +-----------------+-------+ 1 row in set (0.00 sec) mysql> show processlist \G; *************************** 1. row *************************** Id: 17 User: root Host: localhost db: test1 Command: Sleep Time: 247901 State: Info: NULL *************************** 2. row *************************** Id: 21 User: root Host: localhost db: test1 Command: Query Time: 0 State: NULL Info: show processlist *************************** 3. row *************************** Id: 22 User: event_scheduler Host: localhost db: NULL Command: Daemon Time: 1 State: Waiting for next activation Info: NULL 3 rows in set (0.00 sec) ERROR: No query specified mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:33:57 | | test | 2015-10-14 06:34:02 | | test | 2015-10-14 06:34:07 | | test | 2015-10-14 06:34:12 | | test | 2015-10-14 06:34:17 | | test | 2015-10-14 06:34:22 | +------+---------------------+ 6 rows in set (0.00 sec) mysql> create event trunc_test -> on schedule every 1 minute -> do truncate table test; Query OK, 0 rows affected (0.00 sec) mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:34:52 | | test | 2015-10-14 06:34:57 | | test | 2015-10-14 06:35:02 | | test | 2015-10-14 06:35:07 | | test | 2015-10-14 06:35:12 | | test | 2015-10-14 06:35:17 | | test | 2015-10-14 06:35:22 | | test | 2015-10-14 06:35:27 | | test | 2015-10-14 06:35:32 | | test | 2015-10-14 06:35:37 | +------+---------------------+ 10 rows in set (0.00 sec) mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:37:52 | | test | 2015-10-14 06:37:57 | +------+---------------------+ 2 rows in set (0.00 sec) mysql> show processlist \G; *************************** 1. row *************************** Id: 17 User: root Host: localhost db: test1 Command: Sleep Time: 248177 State: Info: NULL *************************** 2. row *************************** Id: 21 User: root Host: localhost db: test1 Command: Query Time: 0 State: NULL Info: show processlist *************************** 3. row *************************** Id: 22 User: event_scheduler Host: localhost db: NULL Command: Daemon Time: 2 State: Waiting for next activation Info: NULL 3 rows in set (0.00 sec) ERROR: No query specified mysql> alter event trunc_test disable; Query OK, 0 rows affected (0.02 sec) mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:38:52 | | test | 2015-10-14 06:38:57 | | test | 2015-10-14 06:39:02 | | test | 2015-10-14 06:39:07 | | test | 2015-10-14 06:39:12 | | test | 2015-10-14 06:39:17 | | test | 2015-10-14 06:39:22 | | test | 2015-10-14 06:39:27 | | test | 2015-10-14 06:39:32 | | test | 2015-10-14 06:39:37 | +------+---------------------+ 10 rows in set (0.00 sec) mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:38:52 | | test | 2015-10-14 06:38:57 | | test | 2015-10-14 06:39:02 | | test | 2015-10-14 06:39:07 | | test | 2015-10-14 06:39:12 | | test | 2015-10-14 06:39:17 | | test | 2015-10-14 06:39:22 | | test | 2015-10-14 06:39:27 | | test | 2015-10-14 06:39:32 | | test | 2015-10-14 06:39:37 | | test | 2015-10-14 06:39:42 | | test | 2015-10-14 06:39:47 | | test | 2015-10-14 06:39:52 | | test | 2015-10-14 06:39:57 | | test | 2015-10-14 06:40:02 | | test | 2015-10-14 06:40:07 | +------+---------------------+ 16 rows in set (0.00 sec) mysql> alter event test_event_1 disable; Query OK, 0 rows affected (0.00 sec) mysql> select * from test; +------+---------------------+ | id1 | create_time | +------+---------------------+ | test | 2015-10-14 06:38:52 | | test | 2015-10-14 06:38:57 | | test | 2015-10-14 06:39:02 | | test | 2015-10-14 06:39:07 | | test | 2015-10-14 06:39:12 | | test | 2015-10-14 06:39:17 | | test | 2015-10-14 06:39:22 | | test | 2015-10-14 06:39:27 | | test | 2015-10-14 06:39:32 | | test | 2015-10-14 06:39:37 | | test | 2015-10-14 06:39:42 | | test | 2015-10-14 06:39:47 | | test | 2015-10-14 06:39:52 | | test | 2015-10-14 06:39:57 | | test | 2015-10-14 06:40:02 | | test | 2015-10-14 06:40:07 | | test | 2015-10-14 06:40:12 | | test | 2015-10-14 06:40:17 | | test | 2015-10-14 06:40:22 | | test | 2015-10-14 06:40:27 | +------+---------------------+ 20 rows in set (0.00 sec) mysql> drop event test_event_1; Query OK, 0 rows affected (0.01 sec) mysql> show events \G; *************************** 1. row *************************** Db: test1 Name: trunc_test Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MINUTE Starts: 2015-10-14 06:34:48 Ends: NULL Status: DISABLED Originator: 1 character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci 1 row in set (0.00 sec) ERROR: No query specified