事件
EVENT 事件
- 类似于shell中的计划任务
- shell中的计划任务可以精确到分钟级,而MySQL中的事件可以精确到秒级
事件的优缺点
优点:
- 一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能,可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用
缺点:
- 定时触发,不可以直接调用
事件的管理
事件调度器的开启和关闭
-
MySQL事件调度器event_scheduler负责调用事件,它默认是关闭的(新版MySQL8.0.27默认是开启的)。这个调度器不断地监视一个事件是否要调用, 要创建事件,必须打开调度器
-
服务器系统变量和服务器选项:
event_scheduler:默认值为OFF,设置为ON才支持Event,并且系统自动打开专用的线程
范例:开启和关闭event_scheduler
#默认事件调度功能是关闭的(新版MySQL8.0.27默认是开启的)
MySQL [hellodb]> select @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| OFF |
+-------------------+
#临时开启event_scheduler
set global event_scheduler=1;
#临时关闭event_scheduler
set global event_scheduler=0;
#永久开启,配合临时开启,然后再将配置添加到配置文件中
[root@centos8 ~]#vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
event_scheduler=ON
-----------------------------------------------------------------------------
#开启后会看到进程
MySQL [hellodb]> show processlist\G;
...
Id: 9
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 1160
State: Waiting on empty queue
Info: NULL
2 rows in set (0.00 sec)
...