600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 详解MySQL新增的功能(事件调度器)实例

详解MySQL新增的功能(事件调度器)实例

时间:2022-06-07 12:32:14

相关推荐

详解MySQL新增的功能(事件调度器)实例

数据库|mysql教程

MySQL,事件调度器,功能

数据库-mysql教程

概述

最新电影带采集源码,ubuntu内存查询,网络爬虫数据排序,php $(input),magento的seolzw

事件调度器是MySQL5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为时间触发器,类似于linux系统下面的任务调度器crontab,或者类似与window下面的计划任务。值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。

磁力播播网站源码,vscode检索,ubuntu启动速度,tomcat方法,sqlite设置教程,服务器svg图片不显示,微信机器人插件大全,怎么判断前端框架,python 爬虫前景,php输出html源代码,秦皇岛seo优化,网站的主题,鼠标拖动图片 是网页,科技模板下载,页面链接使用相对路径,b2c平台评价管理系统,互力公众号淘客程序lzw

查看事件功能是否开启

3d球照片源码,ubuntu rz怎么用,新版正方教务爬虫,php lineplot,海口seo知识lzw

在使用事件这个功能,首先要保证你的mysql的版本是5.1以上,然后还要查看你的mysql服务器上的事件是否开启。

查看事件是否开启,使用如下命令查看:

#方式一SHOW VARIABLES LIKE event_scheduler;#方式二SELECT @@event_scheduler;#方式三SHOW PROCESSLIST;#查看事件状态SHOW EVENTS;

如果看到event_scheduler为on或者PROCESSLIST中显示有event_scheduler的信息说明就已经开启了事件。如果显示为off或者在PROCESSLIST中查看不到event_scheduler的信息,那么就说明事件没有开启,我们需要开启它。

开启事件功能

方式A、通过动态参数修改

SET GLOBAL event_scheduler = ON;

更改完这个参数就立刻生效了,但是重启mysql又还原了,即设置不能跨重启。

方式B、更改配置文件然后重启

在f中的[mysqld]部分添加如下内容,然后重启mysql。

event_scheduler=ON;

一劳永逸,需要能够修改数据库配置的权限。

方式C、直接在启动命令加上“–event_scheduler=1”

mysqld ... --event_scheduler=ON

事件的语法

1. 创建事件

CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT comment] 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}

DEFINER: 定义事件执行的时候检查权限的用户。

ON SCHEDULE schedule: 定义执行的时间和时间间隔。

ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。

ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。

COMMENT ‘comment’: 定义事件的注释。

2. 更改事件

ALTER [DEFINER = { user | CURRENT_USER }] EVENT event_name [ON SCHEDULE schedule] [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT comment] [DO event_body]

3. 删除事件的语法

DROP EVENT [IF EXISTS] event_name;

事件使用举例

1. 创建事件

举例一

定时每隔3秒向表test2中插入数据

create event event_insert_t2on schedule every 3 secondon completion preservedo insert into test2(department,time_v) value(1,now());

执行结果

事件执行结果

举例二

创建一个10分钟后清空test表数据的事件

CREATE EVENT IF NOT EXISTS event_truncate_test2ON SCHEDULEAT CURRENT_TIMESTAMP + INTERVAL 10 MINUTEDO TRUNCATE TABLE test2;

举例三

创建一个在-04-17 14:42:00时刻清空test表数据的事件

DROP EVENT IF EXISTS event_truncate_test2;CREATE EVENT event_truncate_test2ON SCHEDULEAT TIMESTAMP -04-17 14:42:00DO TRUNCATE TABLE test2;

举例四

5天后开启每天定时3秒向表test2中插入数据,一个月后停止执行

CREATE EVENT IF NOT EXISTS event_truncate_test2ON SCHEDULE EVERY 3 SECONDSTARTS CURRENT_TIMESTAMP + INTERVAL 5 dayENDS CURRENT_TIMESTAMP + INTERVAL 1 monthON COMPLETION PRESERVEDO INSERT INTO test2(department,time_v) VALUES(1,NOW());

修改事件举例

举例一

临时关闭事件

alter event event_insert_t2 disable;

其他类似创建事件。

删除事件举例

DROP EVENT IF EXISTS event_insert_t2;

事件调用存储过程或函数如同普通调用。

事件的优缺点及应用场景

优点

定时任务由dba统一管理,避免部署在操作系统层。

减少系统管理员产生误操作的风险。

有利于后续的管理和维护。

缺点

在繁忙且要求性能的数据库上慎重部署和启用调度器。

过于复杂的处理更适合使用程序实现。

开启和关闭事件需要具有超级用户权限。

应用场景

适用于定期收集统计信息,定期清除历史数据,定期数据库检查等等。

【相关推荐】

1. 免费mysql在线视频教学

2. MySQL最新手册教学

3. 布尔教育燕十八mysql入门视频教学

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。