MySQL Events学习笔记

【背景】随着业务的变更,应用每天需要对系统里面的所有客户积分进行累计计算,在做整个操作的时候,系统的其他收银等一些业务就会受到影响,所以经过确认在每天晚上23点,做一个定时的Events让系统自动运行,以下是关于Events的相关学习文档;

 

【介绍】event_scheduler:时间调度器,是MySQL5.1.x版本中引入了一项新特性,在指定的时间单元内执行特定的任务,早期一些对数据定时性操作通过操作系统的crontable的操作,可以直接使用数据库本身提供的功能。

 

【使用说明】

1、状态查看方法:

默认的情况下该功能是属于关闭状态,需要先进行启用后才能使用该特性;

SHOW VARIABLES LIKE 'event_scheduler';

 

2、启用和关闭

参考前面的参数文档修改方法,这边有四种的方法进行修改

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

SET GLOBAL event_scheduler = ON;

SET @@global.event_scheduler = ON;

键值1或者ON表示开启;0或者OFF表示关闭;

或者也可以在server的配置文件((my.cnf, or my.ini on Windows systems)中设置event_scheduler=1,然后重启服务器

 

3、使用的方法

详细语法:http://dev.mysql.com/doc/refman/5.5/en/event-scheduler.html

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}

 

4、查看schema下的所有event

SHOW EVENTS FROM test \G;                        查看test下面的所有event 
SELECT  event_schema,event_name,event_definition,interval_value,interval_field,last_executed,status
FROM `INFORMATION_SCHEMA`.`EVENTS`
ORDER BY EVENT_NAME;                               查看数据库下面所有schema的所有enent

 

5、enents内容的查看

mysql> show create event event_vipview \G
*************************** 1. row ***************************
               Event: event_vipview
            sql_mode:
           time_zone: +08:00
        Create Event: CREATE DEFINER=`root`@`%` EVENT `event_vipview` ON SCHEDULE EVERY 1 DAY STARTS '2015-08-27 23:00:00' ON COMPLETION PRESERVE ENABLE DO call p_icrm_fm
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

 

6、单个event的禁用和启用

禁用:alter event event_name disable;

启用:alter event event_name enable;

 

7、删除event

drop event if exists event_name;

 

以上包含了管理event的所有相关信息,也是我的第200篇文档,希望能对大家有用;

上一篇:mysql性能优化学习笔记


下一篇:Android Bitmap和Canvas学习笔记 [转]