MySQL中的event(JOB、定时任务)

0    297    1

Tags:

👉 本文共约3214个字,系统预计阅读时间或需13分钟。

MySQL5.1.6起增加了事件调度器(Event Scheduler),可用来做定时执行某些特定任务,用于取代原先只能由操作系统的计划任务来执行的工作。MySQL的事件调度器可以精确到每秒执行一个任务,而操作系统的计划任务只能精确到分钟级别。对于对数据实时性要求比较高的应用非常合适。

事件调度器也称为临时触发器(Temporal Triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的。

MySQL定时任务的实现方式有两种:

  • 使用MySQL的event定时任务
    使用MySQL的事件计划,首先需要在服务器开启event_scheduler后才能处理。
  • 使用Linux的定时任务crontab

如何开启事件计划呢?

如果执行命令后返回值为OFF则表示目前事件计划是处于关闭的状态。

开启的方式也分为两种,临时方式使用命令行或脚本操作,永久修改则需要修改MySQL主配置文件my.ini在其中添加event_schduler=1的配置后重启MySQL。

临时性修改只要不重启MySQL在当前运行状态下会直接生效,一旦重启后则失效。

事件调度器

要保证能够执行事件,就必须保证事件计划是开启状态,事件计划默认为关闭状态。

在真实开发环境中会遇到MySQL服务重启或断电的情况,此时会出现事件调度器被关闭的情况。所有事件都不再起作用,解决的方式需要在MySQL的配置文件mysql.ini中加入event_scheduler=ON的配置。

事件任务

事件任务

设置定时任务执行SQL语句

例如:从当日开始每天凌晨4点删除fight表超过一个月的数据

计划任务

设置定时任务调用存储过程

参数说明

  • ON SCHDULE schduler 定义执行的时间和时间间隔
  • ON COMPLETION [NOT] PRESERVE 定义事件是一次性执行还是永久执行,默认为一次性执行,即NOT PRESERVE

在事件中ON SCHEDULE计划任务中有2种设定的方式

  • 用来完成单次计划任务。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MySQL中的event(JOB、定时任务)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部