事件调度器是类似linux 下的任务调度器 crontab , 将数据库按照自定义的时间周期触发某种操作,可以理解为事件触发器。
适用于定期收集统计信息,定期清理历史数据,定期数据库检查(如,自动监控和恢复Slave失败进程)
注意:在繁忙且要求性能的数据库服务器上要慎重部署和启用调度器、过于复杂的处理更适合用程序设计实现、开启和关闭事件调度器需要具有超级用户权限
create TABLE t14(id1 varchar(10),create_time datetime); CREATE EVENT test_event_1 on SCHEDULE EVERY 5 SECOND DO INSERT INTO test1.t14(id1,create_time) VALUES('test',now());
SHOW EVENTS --查看调度器状态 SELECT * FROM t14 show VARIABLES LIKE '%scheduler%' -- 查看事件调度器状态
打开调度器,同时 show processlist 发现新产生一个后台进程:
show PROCESSLIST
新建一个调度器,每隔1分钟清空表 t14
CREATE EVENT trunc_test ON SCHEDULE EVERY 1 MINUTE DO TRUNCATE TABLE test1.t14
一分钟后。。。
如果调度器不再使用,可以禁用(disable)或者删除(drop)
ALTER EVENT test_event_1 DISABLE
drop EVENT test_event_1