MySQL中的事件调度器EVENT是啥样的
发布时间:2022-01-13 14:54:58 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关MySQL中的事件调度器EVENT是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 MySQL中的事件调度器EVENT,可以在数据库里按照设定的时间周期触发某些操作,类似于定时
这篇文章将为大家详细讲解有关MySQL中的事件调度器EVENT是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 MySQL中的事件调度器EVENT,可以在数据库里按照设定的时间周期触发某些操作,类似于定时任务机制。 MySQL中的事件调度器,EVENT,也叫定时任务,类似于Unix crontab或Windows任务调度程序。 EVENT由其名称和所在的schema唯一标识。 EVENT根据计划执行特定操作。操作由SQL语句组成,语句可以是BEGIN…END语句块。EVENT可以是一次性的,也可以是重复性的。一次性EVENT只执行一次,周期性EVENT以固定的间隔重复其操作,并且可以为周期性EVENT指定开始日期和时间、结束日期和时间。(默认情况下,定期EVENT在创建后立即开始,并无限期地继续,直到它被禁用或删除。) EVENT由一个特殊的事件调度器线程执行,用SHOW PROCESSLIST可以查看。 root@database-one 13:44: [gftest]> show variables like '%scheduler%'; +-----------------+-------+| Variable_name | Value | +-----------------+-------+| event_scheduler | OFF | +-----------------+-------+1 row in set (0.01 sec) root@database-one 13:46: [gftest]> show processlist; +--------+------+----------------------+-----------+---------+------+----------+------------------+| Id | User | Host | db | Command | Time | State | Info | +--------+------+----------------------+-----------+---------+------+----------+------------------+...... +--------+------+----------------------+-----------+---------+------+----------+------------------+245 rows in set (0.00 sec) root@database-one 13:46: [gftest]> set global event_scheduler=1; Query OK, 0 rows affected (0.00 sec) root@database-one 13:47: [gftest]> show variables like '%scheduler%'; +-----------------+-------+| Variable_name | Value | +-----------------+-------+| event_scheduler | ON | +-----------------+-------+1 row in set (0.01 sec) root@database-one 13:47: [gftest]> show processlist; +--------+-----------------+----------------------+-----------+---------+------+------------------------+------------------+| Id | User | Host | db | Command | Time | State | Info | +--------+-----------------+----------------------+-----------+---------+------+------------------------+------------------+...... | 121430 | event_scheduler | localhost | NULL | Daemon | 33 | Waiting on empty queue | NULL | ...... +--------+-----------------+----------------------+-----------+---------+------+------------------------+------------------+246 rows in set (0.01 sec) 可以看到,默认情况下,MySQL的EVENT没有打开,通过设置event_scheduler参数来打开或者关闭EVENT。打开后就会多一个event_scheduler,这个就是事件调度器线程。 除了打开和关闭,还可以禁用,要禁用EVENT,请使用以下两种方法之一: 启动MySQL时用命令行参数 --event-scheduler=DISABLED 在MySQL配置文件中配置参数 event_scheduler=DISABLED MySQL 5.7中创建EVENT的完整语法如下: CREATE [DEFINER = user] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'string'] DO event_body; schedule: AT timestamp [+ INTERVAL interval] ... | EVERY interval [STARTS timestamp [+ INTERVAL interval] ...] [ENDS timestamp [+ INTERVAL interval] ...] interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND} (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |