MySQL job 定时任务

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL job 定时任务

介绍

MySQL Job是MySQL数据库中的一种定时任务管理工具,它允许用户在指定的时间间隔内自动执行SQL语句或存储过程。

优点:

1. 简单易用:MySQL Job提供了简单的语法和命令,使得用户可以轻松创建和管理定时任务。

2. 灵活性:用户可以根据自己的需求设置任务的执行时间、频率和执行内容,满足不同的业务需求。

3. 可靠性:MySQL Job具有良好的稳定性和可靠性,可以确保任务按时执行,并提供了错误处理和日志记录功能。

缺点:

1. 依赖于MySQL数据库:MySQL Job只能在MySQL数据库中使用,对于其他数据库系统不适用。

2. 单点故障:如果MySQL服务器发生故障或重启,可能会导致定时任务的中断或延迟执行。

3. 限制性:MySQL Job的功能相对简单,对于复杂的定时任务需求可能无法满足。

使用场景:

1. 数据备份和同步:可以使用MySQL Job定时执行备份和同步任务,确保数据的安全性和一致性。

2. 数据清理和维护:可以定时清理过期数据、优化数据库性能、更新统计信息等。

3. 数据报表生成:可以定时生成数据报表,提供给相关人员查看和分析。

4. 数据导入和导出:可以定时执行数据导入和导出任务,实现数据的迁移和交换。

案例

-- 创建一个名为t_mysql_job的表

- id:任务ID,自增主键

- job_name:任务名称

- job_description:任务描述

- job_status:任务状态(0表示未执行,1表示已执行)

- create_time:任务创建时间

- update_time:任务更新时间

创建表
CREATE TABLE t_mysql_job (
  id INT AUTO_INCREMENT PRIMARY KEY,
  job_name VARCHAR(50) NOT NULL,
  job_description VARCHAR(100),
  job_status INT DEFAULT 0,
  create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建定时任务    每一分钟插入一条数据
CREATE EVENT daily_job
ON SCHEDULE EVERY 1 MINUTE
-- 从什么时候开始计时
STARTS SYSDATE()
DO
-- 在这里编写定时任务的逻辑代码
INSERT INTO t_mysql_job (job_name, job_description) VALUES ('Daily Job', 'This is a daily job');
执行结果

-- 查询定时任务    ENABLED--启用    DISABLED--禁用
SELECT T.STATUS,T.* FROM information_schema.EVENTS T WHERE EVENT_NAME = 'daily_job';
-- 查询定时任务
SHOW EVENTS where name = 'daily_job';
 
-- 启用定时任务
ALTER EVENT daily_job ENABLE;
 
-- 禁用定时任务
ALTER EVENT daily_job DISABLE;
 
-- 删除定时任务
DROP EVENT daily_job;
 
-- 创建存储过程    
-- 在MySQL中,创建存储过程时需要使用`DELIMITER`语句来更改分隔符
DELIMITER //
CREATE PROCEDURE ps_insert_mysql_job()
BEGIN
    INSERT INTO t_mysql_job (job_name, job_description) VALUES ('ps_insert_mysql_job', 'This is a daily job');
END //
DELIMITER ;
-- 创建定时任务3分钟执行一次存储过程
CREATE EVENT IF NOT EXISTS my_event
ON SCHEDULE EVERY 3 MINUTE
STARTS SYSDATE()
DO
    CALL ps_insert_mysql_job;
执行结果

-- 查看存储过程
SHOW PROCEDURE STATUS WHERE NAME = 'ps_insert_mysql_job';
 
-- 删除存储过程
DROP PROCEDURE IF EXISTS ps_insert_mysql_job;


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 关系型数据库 MySQL
MySQL创建定时任务
MySQL创建定时任务
44 0
|
9月前
|
SQL 关系型数据库 MySQL
OceanBase数据库社区版的MySQL模式支持定时任务
OceanBase数据库社区版的MySQL模式支持定时任务
322 1
|
5月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
52 0
|
5月前
|
存储 SQL 关系型数据库
MySQL中定时任务的使用
MySQL中定时任务的使用
39 0
|
6月前
|
存储 关系型数据库 MySQL
MySQL定时任务存储过程函数和动态表名实例
MySQL定时任务存储过程函数和动态表名实例
|
6月前
|
存储 关系型数据库 MySQL
Navicate设置MySQL定时任务执行存储过程
Navicate设置MySQL定时任务执行存储过程
|
9月前
|
存储 Java 关系型数据库
分布式定时任务框架Quartz总结和实践(2)—持久化到Mysql数据库
本文主要介绍分布式定时任务框架Quartz集成SpringBoot持久化数据到Mysql数据库的操作,上一篇文章使用Quartz创建定时任务都是保存在内存中,如果服务重启定时任务就会失效,所以Quartz官方也提供将定时任务等信息持久化到Mysql数据库的功能,本文主要实现这种Quartz的这种使用方式。
444 0
分布式定时任务框架Quartz总结和实践(2)—持久化到Mysql数据库
|
10月前
|
关系型数据库 MySQL API
PHP定时任务:轮询多个API接口并将内容自动录入mysql数据库的解决方案
PHP定时任务:轮询多个API接口并将内容自动录入mysql数据库的解决方案
74 0
|
11月前
|
消息中间件 SQL 关系型数据库
设置 Flink 的定时任务来实现定时触发写入 MySQL 的逻辑
设置 Flink 的定时任务来实现定时触发写入 MySQL 的逻辑
886 1
|
11月前
|
关系型数据库 MySQL
MySQL定时任务(每天凌晨3点钟执行)
MySQL定时任务(每天凌晨3点钟执行)
77 0