MySQL Event

创建EVENT语法:

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} 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] DROP EVENT [IF EXISTS] event_name

DEFINER:指定事件执行时使用的用户账号,当事件执行时,会根据该指定账号的权限来检查事件定于的语句是否有权限执行。如果创建Event时未指定DEFINER,则默认使用创建事件的用户,与显示指定DEFINER=CURRENT_USER相同;

[ON COMPLETION [NOT] PRESERVE]: 默认Event为一次执行,执行完成后即删除,即NOT PERSERVE;如果希望Event在执行完成后也不删除,那么需指定ON COMPLETION PRESERVE选项。

[ENABLE | DISABLE | DISABLE ON SLAVE]: 在MYSQL中,Event和表一样归属于某个schema,如果该schema处于主从复制中,那么在主库创建Event后会同步到从库中,但会默认将从库中Event的状态修改为SLAVESIDE_DISABLED,即在从库上不执行。如果在主库上创建Event时指定DISABLE或DISABLE ON SLAVE,那么主库上的Event不会启用。

MySQL EventScheduler

使用EventScheduler可以实现类似SQL SERVER中Job相同的功能,定期执行特定脚本。

在复制中,可以使用SHOW SLAVE STATUS中的Seconds_Behind_Master来判断当前主库到从库的延迟,但如果主库长时间未更新,则会导致Seconds_Behind_Master的值不准确,因此我们可以使用event_scheduler来定期更新主库中的特定表的数据,以保证主库有定期更新。

操作方法:

-- 首先判断EventScheduler功能是否开启
SHOW VARIABLES LIKE 'event_scheduler'; -- 开启EventScheduler功能
SET GLOBAL event_scheduler=ON; -- 在主库上创建用于监控的表并插入数据:
CREATE TABLE TB_RepMonitor
(
ID INT PRIMARY KEY,
DT DATETIME
);
INSERT INTO TB_RepMonitor VALUES(,NOW()); -- 然后创建event_scheduler来定期更新
DROP EVENT IF EXISTS Event_TB_RepMonitor_Update;
DELIMITER $$;
CREATE DEFINER='root'@'localhost'
EVENT Event_TB_RepMonitor_Update
ON SCHEDULE EVERY SECOND
ENABLE
DO
BEGIN
UPDATE testdb1.TB_RepMonitor SET DT=NOW();
END
$$;
DELIMITER ; -- 查看EVENT的状态
SHOW EVENTS LIKE 'Event_TB_RepMonitor_Update' \G -- 当主库上创建EVENT后,会同步到从库上,并默认将状态修改为SLAVESIDE_DISABLED;
SHOW EVENTS LIKE 'Event_TB_RepMonitor_Update' \G -- 在主库上查看testdb1.TB_RepMonitor表数据'
-- 这样就可以放心使用SHOW SLAVE STATUS中的Seconds_Behind_Master的值了
SELECT *,NOW() FROM testdb1.TB_RepMonitor;

相关操作命令:

##==================================##
##查看数据库中创建的所有作业##
select * from information_schema.events \G; ##==================================##
##启用作业##
ALTER EVENT schema.event_name ENABLE ##==================================##
##禁用作业##
ALTER EVENT schema.event_name DISABLE ##==================================##
##删除作业##
drop event schema.eventname

MySQL Event--Event and EventScheduler的更多相关文章

  1. mysql之event

    mysql之event http://blog.csdn.net/lxgwm2008/article/details/9088521 Mysql事件调度器(Event Scheduler)类似于定时器 ...

  2. MySQL 定时器EVENT学习

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/6583535 MySQL 定时器EVENT学习 MySQL从5.1开始支持event功 ...

  3. Mysql使用event,类似oracle job

    MySQL从5.1开始支持event功能,类似oracle的job功能.有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了.如linux crontab功能. ...

  4. Mysql中event事件的入门

    Mysql中event事件的入门 主要涉及的知识点:mysql的存储过程.mysql的event事件调度. 参考资料: Qiao_Zhi的博客:[周期性执行事件]MySQL事件(Event)& ...

  5. Mysql的Event

    Mysql的Event Event简介 Event是mysql中的一个事件,和触发器类似,触发器是在某条sql语句执行后可能会触发,而Event是每隔一段时间或某个特定的时间点执行,可以精确到秒. 准 ...

  6. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

    MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...

  7. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  8. 【MySQL】Event事件与游标

    MySQL的事件就像Linux系统上的定时任务,按照设置的时间或者间隔时间执行设置好的任务. 如果用SQLyog一类的写存储过程.触发器或者事件会省事一些,例如SQLyog就会生成一个大致的模板: D ...

  9. MySQL数据库 Event 定时执行任务.

    一.背景 由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间.即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的.在我们项目中由于不清理数据,一 ...

  10. mysql的event(事件)用法详解

    SELECT * FROM mysql.event;SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on SHOW VARIABLES LIKE 'e ...

随机推荐

  1. 正则化,L1,L2

    机器学习中在为了减小loss时可能会带来模型容量增加,即参数增加的情况,这会导致模型在训练集上表现良好,在测试集上效果不好,也就是出现了过拟合现象.为了减小这种现象带来的影响,采用正则化.正则化,在减 ...

  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 创建属性网格

    jQuery EasyUI 数据网格 - 创建属性网格 属性网格(property grid)带有一个内置的 expand(展开)/collapse(合并) 按钮,可以简单地为行分组.您可以简单地创建 ...

  3. 用GraphX分析伴生网络(二)

    8. 过滤噪声边 在当前的伴生关系中,边的权重是基于一对概念同时出现在一篇论文中的频率来计算的.这种简单的权重机制的问题在于:它并没有对一对概念同时出现的原因加以区分,有时一对概念同时出现是由于它们具 ...

  4. 压力测试+接口测试(工具jmeter)

      jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因 为jmeter是java开发的,所以运行的时候必须 ...

  5. 微信小程序 自定义三列城市弹窗

    1.WXML <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindco ...

  6. 漏洞复现——Apache HTTPD多后缀解析漏洞

    漏洞原理:Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache Httpd这个特 ...

  7. es6中...是什么意思。

    1. var set = new Set([1, 2, 3, 4, 4,4,4,4,2,2,2]) set=[...set] 2. let [head, ...tail] = [1, 2, 3, 4] ...

  8. Java IO编程全解(二)——传统的BIO编程

    前面讲到:Java IO编程全解(一)——Java的I/O演进之路 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口 ...

  9. linux 安装配置zookeeper

    1.什么是zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用 ...

  10. learning makefile static model