当前位置:Gxlcms > mysql > mysql学习记录(十一)--事件调度器_MySQL

mysql学习记录(十一)--事件调度器_MySQL

时间:2021-07-01 10:21:17 帮助过:15人阅读

一、理论:

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

人气教程排行