Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySql小技能:定时任务

MySql小技能:定时任务

作者头像
公众号iOS逆向
发布于 2022-12-21 06:03:31
发布于 2022-12-21 06:03:31
1.5K00
代码可运行
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全
运行总次数:0
代码可运行

I 预备知识

SQL 层面:SQL 的生命周期、权限管理、count(*) 的底层原理、底层的排序原理、连表原理。存储引擎层面:InnoDB 存储引擎的底层架构、索引的算法、事务的原理、锁机制、隔离机制、幻读

1.1 mysql 各字段类型存储文本信息的最大值

  • text,最大65535字节
  • mediumtext,最大16777215字节
  • longtext,2的32次方减1个,即4294967295个字节

1.2 date_sub的用法

语法:date_sub(date,interval expr type),函数从日期减去指定的时间间隔,

例子:删除时间小于昨天的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    delete from car_viol where `create` < date_sub(curdate(), interval 1 day);

1.3 innodb_io_capacity 参数

MySQL 数据库并不是直接根据硬盘的性能来调节其 write 速度,而是靠 innodb_io_capacity 参数来告诉 MySQL 数据库磁盘的性能。

1.4 过程和函数

过程(procedure)又叫存储过程(stored procedure),是一个有名称的PL/SQL程序块 。

过程相当于java中的方法, 它注重的是实现某种业务功能 。函数(function)也相当于java中的方法,它 注重计算并且总是有返回结果 。

过程和函数都是能够永久存储在数据库中的程序代码块,应用时通过调用执行 。https://blog.csdn.net/z929118967/article/details/128313118

1.5 查询mysql有没有开启时间功能的支持

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*查看事件功能是否开启*/
show variables like 'event_scheduler'; 

开启事件功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set global event_scheduler = on;
# off 代表关,on 代表开

II 定时任务

利用MySql的事件机制完成定时任务:在指定的时间调用指定的存储过程。

event机制是mysql5.1版本开始引入的,这意味着版本低于5.1的可能无法使用

2.1 实现定时操作的功能

  • 创建了一个存储过程,它可以删除时间小于昨天的数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create procedure del_car_v()
begin
    delete from car_v where `create` < date_sub(curdate(), interval 1 day);
end
  • 创建一个事件,让事件按照某种规则去调用存储过程。事件创建好以后就会立刻执行一次,并且一般是默认开启的。

从2023年1月2日零点开始每隔一天自动调用之前写好的存储过程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create event `e_update_user_ticket`  
on schedule every 1 day starts '2023-01-02 00:00:00'  # 1 day 代表一天一次, 2 year(2年一次)。
on completion not preserve enable do call del_car_v(); 

2.2 控制某个事件的运行状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*开启事件*/
alter event 事件名 on completion preserve enable; 
/*关闭事件*/
alter event 事件名 on completion preserve disable; 

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 8.0 定时任务(事件)验证
1、启动事件机制 mysql> SHOW VARIABLES LIKE 'event_scheduler'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | ON | +-----------------+-------+ 1 row in set (0.00 sec) mysql> MySQL 8.0事件机制是默认开启的。 2、准备一张数
程裕强
2021/11/15
1.7K0
MySQL 8.0 定时任务(事件)验证
MySQL定时任务(EVENT|事件)如何配置,必会技能!
  自MySQL5.1.6起,增加了一个非常有特色的功能 - 事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、数据统计报告、数据备份等等),来取代原先只能由操作系统的计划任务来执行的工作。   值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux的cron)只能精确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
陈哈哈
2021/10/13
7.8K0
MySQL的定时任务详解
delimiter关键字的使用:在mysql客户端中分隔符默认是分号(;)。如果一次输入的语句较多,并且语句中间有分号,这时需要新指定一个特殊的分隔符。可以使用“delimiter //”,这样改变了分隔符。其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
程序员云帆哥
2022/05/12
3.4K0
使用MySQLl事件定时执行岗位七天下线任务
  最近做了一个招聘的项目,在项目中有一个定时下线的需求。在做之前我一直在考虑到底使用window 服务,还是使用调度,最终我选择使用mysql定时事件,因为这样简单方便。
追逐时光者
2022/02/15
3720
MySQL定时任务,解放双手,轻松实现自动化
Mysql 事件是一种在特定时间点自动执行的数据库操作,也可以称呼为定时任务,它可以自动执行更新数据、插入数据、删除数据等操作,无需人工干预。
码猿技术专栏
2024/01/17
4840
MySQL定时任务,解放双手,轻松实现自动化
MySql 定时任务的使用
  自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
授客
2019/09/11
2.3K0
MySql 定时任务的使用
MySQL使用事务定时调用存储过程
最近工作临时接到需求要存储每一天某个特定时点的用户数据,但是代码里面没有这个功能,要得急而且又没有现成的代码。 要解决这个问题,当时想了两个方案
HaC
2020/12/30
2.3K0
MySQL使用事务定时调用存储过程
mysql定时分区
注意:分区的字段必须是主键或主键的一部分; 对已有数据的表进行分区时始终报错,应该创建同样的表结构同时创建分区,然后将原有数据导入新表。
华创信息技术
2019/11/08
1.8K0
mysql定时分区
使用 MySQL Scheduler 和 Event 周期性创建数据表
使用 MySQL Scheduler 和 Event 周期性创建数据表,下面提供的是按月建表计划任务及事件通过 ON SCHEDULE EVERY 1 MINUTE 语句完成。
柳公子
2018/09/17
1.1K0
定时删除过期数据(MySQL数据表)
上面代码表示从2019-05-29 17:33:43起每一天执行一次del_data_count这个存储过程,并带上参数 5. 创建存储过程
李玺
2021/11/22
5.1K0
MySQL 事件调度器
事件调度器是定时触发执行的,在这个角度上也可以称作是"定时的触发器"。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行特定的语句/存储过程。事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"。启用事件调度器后,拥有SUPER权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。
用户1278550
2018/08/09
1.6K0
技术分享 | MySQL 行锁超时排查方法优化
之前在 [如何有效排查解决 MySQL 行锁等待超时问题] 文章中介绍了如何监控解决行锁超时报错,当时介绍的监控方案主要是以 shell 脚本 + general_log 来捕获行锁等待信息,后来感觉比较麻烦,因此优化后改成用 Event + Procedure 的方法定时在 MySQl 内执行,将行锁等待信息记录到日志表中,并且加入了 pfs 表中的事务上下文信息,这样可以省去登陆服务器执行脚本与分析 general_log 的过程,更加便捷。
爱可生开源社区
2021/02/26
4900
技术分享 | MySQL 行锁超时排查方法优化
MySQL定时任务(event事件)
2 事件的优缺点 2.1 优点 一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。 可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。
星哥玩云
2022/08/18
2.8K0
mysql数据库定时删除数据
悟空宇
2024/03/11
1.4K0
MySQL数据库 Event 定时执行任务.
一、背景   由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间。即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的。在我们项目中由于不清理数据,一个表占的空间竟然达到了4G之多。想想有多可怕...   这里介绍的是用MySQL 建立一个定时器Event,定期清除掉之前的不必要事件。 二、内容 #1、建立存储过程供事件调用 delimiter// drop procedure if exists middle_proce// create proced
JMCui
2018/03/15
2.1K0
mysql定时任务删除数据
作者:matrix 被围观: 3,421 次 发布时间:2020-03-31 分类:mysql | 一条评论 »
HHTjim 部落格
2022/09/26
2.2K0
MySQL从删库到跑路_高级(八)——事件
事件是用来执行定时任务的一组SQL集,在时间到时会触发。 一个事件可调用一次,也可周期性的启动,由一个特定的事件调度器线程来管理的。 事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
良月柒
2019/03/20
1K0
MySQL 事件
MySQL 事件(Event)事件是根据时间表运行的任务,类似于 Unix crontab 和 Windows 定时任务。
恋喵大鲤鱼
2023/10/12
4330
MySQL计划任务(事件调度器)
MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES LIKE 'event_scheduler'; 或 SELECT @@event_scheduler; 或 SHOW PROCESSLIST; 若显示: +-----------------+-------+ | Variable
wangxl
2018/03/07
1.9K0
mysql创建定时执行存储过程任务
sql语法很多,是一门完整语言。这里仅仅实现一个功能,不做深入研究。 目标:定时更新表或者清空表。 案例:曾经做过定时清空位置信息表的任务。(然而,当时并未考虑服务器挂掉后的情况) 本次测试:每5s更新表字段+1 1.prepare 创建一个表: DROP TABLE IF EXISTS `test_sche`; CREATE TABLE `test_sche` ( `id` int(11) NOT NULL, `counts` int(11) DEFAULT NULL, PRIMARY KEY
Ryan-Miao
2018/03/13
5.2K0
mysql创建定时执行存储过程任务
相关推荐
MySQL 8.0 定时任务(事件)验证
更多 >
LV.1
全城淘信息技术有限公司iOS高级开发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档