外观
事件概述
事件调度器,简称事件,可以做为定时任务调度器,取代部分只能使用操作系统才能执行的工作。MySQL支持每秒执行一次事件,在一些对实时性能比较高的环境下还是非常实用的。
事件调度器是定时触发执行的,从这个角度上看也可以称其为“临时触发器”,但是它与触发器有所区别,触发器只针对某一个表产生的事件执行一些语句,而事件调度器则是在某一段(间隔)时间执行一些语句。
查看事件是否开启
事件由一个特殊的线程来管理。启用事件调度器后,拥有SUPER权限的用户就可以通过SHOW PROCESSLIST命令就可以看到这个线程。
我们可以通过下面的代码查看事件是否开启。
show variables like 'event_scheduler';
select @@event_scheduler;
show processlist;
从运行结果中可以看到,事件已经开启。
开启事件
设定全局变量event_scheduler的值就可以动态地控制时间是否开启。开启MySQL事件调度器,可以通过下面两种方式实现。
设置全局参数
在MySQL的命令行中,使用SET GLOBAL命令可以开启或关闭事件。如开启事件,就可以使用下面的代码。
set global event_scheduler = OFF; show variables like 'event_scheduler';
运行结果 更改配置文件
在MySQL的配置文件my.ini中,找到[mysqld],然后在下面添加如下的字符串即可始终开启事件。
event_scheduler = ON