iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql定时器event详解
  • 373
分享到

mysql定时器event详解

2024-04-02 19:04:59 373人浏览 泡泡鱼
摘要

一. 事件简介     事件(event)是Mysql在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”

一. 事件简介


    事件(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


Database changed


先创建存储过程:
mysql> delimiter //
mysql> create procedure del_proc()
    -> begin
    -> INSERT INTO req(entname) SELECT t.`NAME` FROM (SELECT NAME, min(ZCSJ) AS mydate FROM test-_T.t_user_sign GROUP BY NAME) t WHERE t.mydate > NOW() - 36 * 60 * 1000 and t.`NAME` not in(SELECT entname from req);
    -> UPDATE req SET `STATUS` = '0' where `STATUS` is null;
    -> end
    -> //
Query OK, 0 rows affected (0.00 sec)


执行存储过程的内容:
mysql> call del_proc();
    -> //
Query OK, 2 rows affected, 1 warning (0.29 sec)




创建事件deldata_event(其作用:每隔一分钟自动调用del_proc()存储过程的内容)
mysql> create event deldata_event
    -> on schedule every 1 minute
    -> on completion preserve disable
    -> do call del_proc();
    -> //
Query OK, 0 rows affected (0.00 sec)


mysql>
mysql>


开启事件deldata_event
mysql> alter event deldata_event on completion preserve enable;
    -> //
Query OK, 0 rows affected (0.00 sec)




关闭事件deldata_event
mysql>alter event deldata_event on completion preserve disable;




查看自己创建的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字段会反映出相应的作业最近一次的执行时间

您可能感兴趣的文档:

--结束END--

本文标题: mysql定时器event详解

本文链接: https://www.lsjlt.com/news/49580.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql定时器event详解
    一. 事件简介     事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”...
    99+
    2022-10-18
  • mysql定时任务(event事件)实现详解
    1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。 事件和触发器类似,都是在某些事...
    99+
    2022-10-18
  • MySQL数据库Event定时执行任务详解
    一、背景   由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间。即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的。在我们项目中由于不清理...
    99+
    2022-10-18
  • MySQL binlog event 详解
    我也是只菜鸡,blog写的不对或者不严谨的地方还请大伙指出来,我及时改正,免得误人子弟。实验环境:CentOS7.3.1611 + MySQL社区版 5.7.19参考:    小菜鸟DB...
    99+
    2022-10-18
  • MySQL定时任务EVENT事件的使用方法
    目录一、查看定时策略是否开启二、创建定时任务 三、定时任务操作四、定时规则一、查看定时策略是否开启 show variables like '%event_scheduler%';  * on这里是...
    99+
    2023-05-25
    MySQL定时任务EVENT事件 MySQL EVENT事件
  • 详解JavaScript的定时器
    目录简单介绍setInterval描述参数返回值用法setTimeout描述参数用法:取消timer在控制台使用定时器console.time(timerName)console.t...
    99+
    2022-11-12
  • JavaScript定时器原理详解
    目录一、 setTimeout() 定时器二、停止 setTimeout() 定时器三、setInterval() 定时器四、清除setInterval() 定时器五、电子时钟案例前...
    99+
    2022-11-12
  • golangcroncli定时器命令详解
    目录定时器命令格式定时执行命令单个命令多个命令windows系统下的使用特殊情况处理定时命令执行出现panic定时命令执行时间过长其他定时器是执行任务时的常用功能,配置系统的定时任务...
    99+
    2022-11-13
  • Jmeter固定定时器的使用详解
    目录场景举例特殊说明特殊说明补充:统一随机定时器准确的吞吐量定时器常数吞吐量定时器Jmeter之固定定时器的使用 Jmeter的线程组在发送2个请求之间需要设置一个等待时间时,可以用...
    99+
    2022-11-12
  • 详解TCP的四种定时器
    详解TCP的四种定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的。在TCP中,会有四种定时器: (1)重传定时器 (2)坚持定时...
    99+
    2022-06-04
    定时器 四种 详解
  • Java中的定时器Timer详解
    目录总结简单来说,定时器就相当于一个“闹钟”,给定时器设定一个任务,约定这个任务在xxx时间之后执行~ Timer类提供了一个核心接口,schedule(安排) 指定一个任...
    99+
    2022-11-12
  • Flowable中定时器的玩法详解
    目录1. 流程定义定时激活2. 流程实例定时挂起3. 定时任务执行过程1. 流程定义定时激活 在之前松哥给小伙伴们介绍流程定义的时候,流程都是定义好之后立马就激活了,其实在流程定义的...
    99+
    2022-11-13
    Flowable定时器使用 Flowable定时器
  • JavaScript定时器setTimeout、setInterval使用详解
    定时器:按我个人理解来说就是固定某个时间后,时间到了,就提醒我时间到了。 程序中的定时器:相当于倒计时,也相当于计时器。作用是在设定的某个时间后,执行特定的方法。 我们先来了解一下s...
    99+
    2023-05-17
    定时器settimeout 定时器 setInterval js定时器代码
  • navicat创建MySql定时任务的方法详解
    navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。事件和触发器...
    99+
    2022-05-31
    navicat MySql定时任务 navicat MySql
  • Java定时任务详解
    定时任务在项目中经常会使用到,本文主要根据博主自己使用定时的经验分如下几点介绍定时任务:1、Quartz定时任务简介及Spring配置Quartz定时任务2、SchedulerFactory对定时任务进行增删改查3、总结Quartz定时任务...
    99+
    2023-05-31
    java 定时任务 ava
  • JavaScript 定时器详情
    目录1、简单介绍2、setInterval2.1 描述2.2 参数2.3 返回值2.4 用法3、setTimeout3.1 描述3.2 参数3.3 用法4、取消timer5、在控制台...
    99+
    2022-11-12
  • 【JavaEE初阶】 定时器详解与实现
    文章目录 🌴定时器是什么🎋Java标准库中的定时器🌲模拟实现定时器🚩定时器的构成📌第一步:MyStack类的建立...
    99+
    2023-10-26
    java-ee java 开发语言 多线程 计算机操作系统 定时器
  • 详解Python的多线程定时器threading.Timer
    threading.Timer 一次timer只生效一次,不会反复循环,如果实现循环触发,代码如下: import time import threading def createT...
    99+
    2022-11-12
  • PHP定时备份MySQL与mysqldump语法参数详解
    先来为大家介绍几个MySQL备份命令mysqldump常用操作实例: 1、mysqldump备份 只导出表结构 d:/PHP/xampp/mysql/bin/mysqldump -h227.0.0.1 ...
    99+
    2022-10-18
  • Node.js中使用计时器定时执行函数详解
    如果你熟悉客户端JavaScript编程,你可能使用过setTimeout和setInterval函数,这两个函数允许延时一段时间再运行函数。比如下面的代码, 一旦被加载到Web页面,1秒后会在页面文档后追...
    99+
    2022-06-04
    计时器 详解 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作