mysql定时器event解说
发布时间:2022-03-24 15:47:18 所属栏目:MySql教程 来源:互联网
导读:mysql定时器event解说: 一. 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的事件调度器。 事件取代了原先只能由操作系统的计划任务来执行的工作,而且
mysql定时器event解说: 一. 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。 二. 事件的优缺点 2.1 优点 一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。 可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。 2.2 缺点 定时触发,不可以调用。 三. 创建事件 查看是否开启evevt与开启evevt。 MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的。 mysql> show VARIABLES LIKE 'event_schedu%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+ 1 row in set (0.00 sec) 开启event功能: mysql> SET GLOBAL event_scheduler = 1; Query OK, 0 rows affected (0.00 sec) mysql> show VARIABLES LIKE 'event_schedu%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | ON | +-----------------+-------+ 1 row in set (0.00 sec) 创建event举例: mysql> use test-_T Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A 执行存储过程的内容: mysql> call del_proc(); -> // Query OK, 2 rows affected, 1 warning (0.29 sec) 开启事件deldata_event mysql> alter event deldata_event on completion preserve enable; -> // Query OK, 0 rows affected (0.00 sec) 查看自己创建的event: mysql> select * from mysql.event; +--------------+---------------+-----------------+---------+------------+----------------+----------------+---------------------+---------------------+---------------------+---------------------+------+---------+---------------+--------------------------------------------+---------+------------+-----------+----------------------+----------------------+-----------------+-----------------+ | db | name | body | definer | execute_at | interval_value | interval_field | created | modified | last_executed | starts | ends | status | on_completion | sql_mode | comment | originator | time_zone | character_set_client | collation_connection | db_collation | body_utf8 | +--------------+---------------+-----------------+---------+------------+----------------+----------------+---------------------+---------------------+---------------------+---------------------+------+---------+---------------+--------------------------------------------+---------+------------+-----------+----------------------+----------------------+-----------------+-----------------+ | Test-_T | deldata_event | call del_proc() | mdba@% | NULL | 1 | MINUTE | 2017-05-09 10:21:57 | 2017-05-09 10:22:11 | 2017-05-09 02:24:57 | 2017-05-09 02:21:57 | NULL | ENABLED | PRESERVE | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | | 15 | SYSTEM | utf8 | utf8_general_ci | utf8_general_ci | call del_proc() | +--------------+---------------+-----------------+---------+------------+----------------+----------------+---------------------+---------------------+---------------------+---------------------+------+---------+---------------+--------------------------------------------+---------+------------+-----------+----------------------+----------------------+-----------------+-----------------+ 1 row in set (0.00 sec) MySQL中查看Event的执行情况 通过执行如下的语句: SELECT * FROM information_schema.EVENTS; 例如: mysql> SELECT * FROM information_schema.events G *************************** 1. row *************************** EVENT_CATALOG: def EVENT_SCHEMA: ixinnuo_sjcj EVENT_NAME: deldata_event DEFINER: mdba@% TIME_ZONE: SYSTEM EVENT_BODY: SQL EVENT_DEFINITION: call del_proc() EVENT_TYPE: RECURRING EXECUTE_AT: NULL INTERVAL_VALUE: 1 INTERVAL_FIELD: MINUTE SQL_MODE: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION STARTS: 2017-05-09 10:21:57 ENDS: NULL STATUS: ENABLED ON_COMPLETION: PRESERVE CREATED: 2017-05-09 10:21:57 LAST_ALTERED: 2017-05-09 10:22:11 LAST_EXECUTED: 2017-05-11 08:43:57 EVENT_COMMENT: ORIGINATOR: 15 CHARACTER_SET_CLIENT: utf8 COLLATION_CONNECTION: utf8_general_ci DATABASE_COLLATION: utf8_general_ci 1 row in set (0.00 sec) 可以看到相应的库中的作业信息,其中LAST_EXECUTED字段会反映出相应的作业最近一次的执行时间。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |