一文总结MySQL数据库事件--定时任务实现方式
由于最近在做某些日志表的文总务实清理工作,会用到定时任务,结M件定所以这里也简单介绍一下mysql如何用事件来实现定时任务。数据时任式
后面会介绍两个日志表清理实现方案,库事一种是现方传统的定时delete,另一种会稍微复杂点,文总务实主要是结M件定针对比较大型的项目。

一、数据时任式事件概述
在MySQL 5.1中新增了一个特色功能事件调度器(Event Scheduler),库事简称事件。现方
事件(event)是文总务实MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,结M件定也可周期性的数据时任式启动,它由一个特定的库事线程来管理的,也就是现方所谓的“事件调度器”。
事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,亿华云触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
二、事件的优缺点
优点:一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。
缺点:定时触发,不可以调用。
三、事件调度器参数
事件由一个特定的线程来管理。启用事件调度器后,拥有SUPER权限的账户执行SHOW PROCESSLIST就可以看到这个线程了。
--查看事件是否开启。b2b供应网SHOW VARIABLES LIKE event_scheduler;SELECT @@event_scheduler;--全局开启事件调度器SET GLOBAL event_scheduler = ON;--全局关闭事件调度器SET GLOBAL event_scheduler = OFF;--永久开启事件调度器(在my.cnf配置文件中添加)#事件调度器启动状态event_scheduler = on四、创建事件
一条create event语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(eventschedule,表示事件何时启动以及按什么频率启动;
第二部分是事件动作(event action),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者
benin...end语句块,这两种情况允许我们执行多条SQL。
一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的,一个活动的事件可以执行一次或者多次。
相关语法:
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}说明:


五、事件(定时任务)管理
1. 查询事件
在MySQL中可以通过查询information_schema.events表,企商汇查看已创建的事件。
--查看当前所在库的事件show events;--查看所有事件SELECT * FROM information_schema.events;2. 修改事件
事件被创建之后,还可以使用ALTER EVENT语句修改其定义和相关属性
ALTER[DEFINER={user | CURRENT_USER}]EVENT [IF NOT EXISTS] event_nameON SCHEDULE schedule[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT comment]DO event_body;3. 启动与关闭事件
ALTER EVENT语句可以让一个事件关闭或再次活动。
--启动事件。ALTER EVENT event_name ENABLE;--关闭事件。ALTER EVENT event_name DISABLE;4. 删除事件
删除已经创建的事件可以使用DROP EVENT语句来实现。
DROP EVENT IF EXISTS event_name;六、实例演示
1. 事件+sql
创建名称为event_t1的事件,用于每隔5秒钟向数据表t1(用户信息表)中插入一条数据。
-- 创建用户信息表CREATE TABLE IF NOT EXISTS t1( id INT AUTO_INCREMENT PRIMARY KEY COMMENT 用户编号, name VARCHAR(30) NOT NULL COMMENT 用户姓名, create_time TIMESTAMP COMMENT 创建时间) COMMENT = 用户信息表;-- 创建事件CREATE EVENT IF NOT EXISTS event_t1ON SCHEDULE EVERY 5 SECONDON COMPLETION PRESERVECOMMENT 新增用户信息定时任务DO INSERT INTO t1(name,create_time) VALUES(hwb,NOW());
2. 事件+存储过程
--创建总表CREATE TABLE IF NOT EXISTS t_total( userNumber INT COMMENT 用户数, createtime TIMESTAMP COMMENT 创建时间) COMMENT = 总表;--创建名称为t_total的存储过程,用于统计前面表插入的数量CREATE PROCEDURE t_total()BEGIN DECLARE n_total INT default 0; SELECT COUNT(*) INTO n_total FROM t1; INSERT INTO t_total (userNumber,createtime) VALUES(n_total,NOW());END;--创建名称为event_total的事件,用于在每天12点调用存储过程。CREATE EVENT IF NOT EXISTS event_totalON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 12 HOUR)ON COMPLETION PRESERVE ENABLEDO CALL t_total();
相关文章
一步学会如何制作引导优盘教程(轻松制作引导优盘,让文件传输更便捷)
摘要:在数字化时代,我们每天都面临着大量的文件传输和数据备份需求。而为了更高效、便捷地进行文件传输,制作一个引导优盘成为了必备技能。本文将教您如何一步学会制作引导优盘,让文件传输变得更加...2025-11-04如何在5秒内关闭手机追踪?(简单操作让你摆脱隐私泄露的困扰)
摘要:在现代社会,手机成为了人们生活中不可或缺的工具。然而,随着科技的发展,我们的手机也可能被用来追踪我们的位置和行踪,这对我们的隐私构成了威胁。了解如何关闭手机追踪变得十分重要。本文将...2025-11-04华为荣耀3Outdoor——探索极限,尽显荣耀(适合户外探险的智能手机,华为荣耀3Outdoor值得拥有)
摘要:作为一款专为户外探险设计的智能手机,华为荣耀3Outdoor拥有出色的耐用性能、卓越的防水防尘能力以及全天候的导航功能,是户外探险者的不二之选。外观设计:坚固耐用,又不失美...2025-11-04小米小照相机——轻便便携,记录美好瞬间(小巧玲珑,拍摄卓越。)
摘要:在如今社交媒体发达的时代,拍摄和分享照片成为人们日常生活中的重要一环。为了满足用户对便携式照相机的需求,小米推出了小巧玲珑的小照相机。本文将为您介绍小米小照相机的各项特点和优势。...2025-11-04电脑安装无损分区教程(一步步教你如何在电脑上进行无损分区,保护你的数据安全)
摘要:在电脑使用过程中,我们经常需要对硬盘进行分区,以便更好地管理和存储数据。然而,传统的分区方式往往会导致数据丢失的风险,因此无损分区成为了越来越多人的选择。本文将详细介绍如何利用电脑...2025-11-04摄影茄子之美——用镜头捕捉花开的瞬间(走进茄子的神奇世界,发现花朵的生命之美)
摘要:茄子作为一种常见的蔬菜,在人们的餐桌上常常扮演着重要的角色。然而,很少有人注意到,茄子其实也是一位优秀的摄影师。在摄影茄子的镜头下,我们可以发现花朵的独特美丽和生命之奇迹。接下来,...2025-11-04

最新评论