MySQL数据库Event定时执行任务详解
短信预约 -IT技能 免费直播动态提醒
一、背景
由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间。即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的。在我们项目中由于不清理数据,一个表占的空间竟然达到了4G之多。想想有多可怕...
这里介绍的是用MySQL 建立一个定时器Event,定期清除掉之前的不必要事件。
二、内容
#1、建立存储过程供事件调用
delimiter//
drop procedure if exists middle_proce//
create procedure middle_proce()
begin
DELETE FROM jg_bj_comit_log WHERE comit_time < SUBDATE(NOW(),INTERVAL 2 MONTH);
optimize table jg_bj_comit_log;
DELETE FROM jg_bj_order_create WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_order_create;
DELETE FROM jg_bj_order_match WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_order_match;
DELETE FROM jg_bj_order_cancel WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_order_cancel;
DELETE FROM jg_bj_operate_arrive WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_operate_arrive;
DELETE FROM jg_bj_operate_depart WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_operate_depart;
DELETE FROM jg_bj_operate_login WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_operate_login;
DELETE FROM jg_bj_operate_logout WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_operate_logout;
DELETE FROM jg_bj_operate_pay WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_operate_pay;
DELETE FROM jg_bj_position_driver WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_position_driver;
DELETE FROM jg_bj_position_vehicle WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_position_vehicle;
DELETE FROM jg_bj_rated_passenger WHERE created_on < SUBDATE(NOW(),INTERVAL 3 MONTH);
optimize table jg_bj_rated_passenger;
end//
delimiter;
#2、开启event(要使定时起作用,MySQL的常量GlOBAL event_schduleer 必须为on 或者1)
show variables like 'event_scheduler'
set global event_scheduler='on'
#3、创建Evnet事件
drop event if exists middle_event;
create event middle_event
on schedule every 1 DAY STARTS '2017-12-05 00:00:01'
on completion preserve ENABLE
do call middle_proce();
#4、开启Event 事件
alter event middle_event on completion preserve enable;
#5、关闭Event 事件
alter event middle_event on completion preserve disable;
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
MySQL数据库Event定时执行任务详解
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
2024-04-02
2024-04-02
2024-04-02
CentOS7如何执行PHP定时任务详解
前言
本文主要给大家介绍了关于CenomZhJTPtOS7执行php定时任务的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
一、CentOS 7 安装crontab:yum install crontabs语法:
2022-06-04
Linux定时执行任务at和crontab命令详解
Linux下的两种定时执行任务的方法:at命令,以及crontab服务,小编整理了关于这2个命令的详细用法,希望大家学习后能够更加深入的理解。
(1)at命令
假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。
设置a
2022-06-04
Linux下的crontab定时执行任务命令详解
在linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”
2022-06-04
2023-09-01
2024-04-02
MySQL定时任务不能正常执行怎么解决
这篇文章主要讲解了“MySQL定时任务不能正常执行怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL定时任务不能正常执行怎么解决”吧!原因分析及解决方法当我们发现MySQL的定
2023-06-22
oracle定时任务不执行怎么解决
如果Oracle定时任务没有执行,可以按照以下步骤进行解决:检查定时任务是否正确配置。确保定时任务的语法正确,包括使用正确的cron表达式、指定正确的作业名称、指定正确的作业类型等。检查定时任务是否启用。在Oracle中,可以使用DBMS
2024-04-09
mysql创建定时任务执行存储过程
存储过程已添加好:https://blog.csdn.net/YXWik/article/details/127283316 1.创建定时器用来执行存储过程函数 create event delete_dataon schedule ev
2023-08-17
定时任务备份mysql数据库,同时备份多个数据库
编写备份数据库的shell脚本创建脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumpvim mysql_back.sh脚本内容如下#!/bin/sh# File: /root/mysql_dump/mysql
2018-09-25
2024-04-02
schedual定时任务执行报错如何解决
当schedual定时任务执行报错时,可以按照以下步骤解决问题:1. 检查错误信息:首先查看报错信息,确定具体的错误原因。2. 查看定时任务配置:检查定时任务的配置,包括时间表达式、任务执行类等是否正确。3. 检查依赖库:如果定时任务依赖于
2023-08-30
django定时任务重复执行怎么解决
在Django中,可以使用Celery库来实现定时任务的重复执行。Celery是一个分布式任务队列,可以让你在后台异步执行任务,包括定时任务。下面是一个简单的使用Celery实现定时任务的示例:安装Celery:首先需要安装Celery库
2024-03-07
2024-04-02
SpringJdbcTemplate执行数据库操作详解
JdbcTemplate是Spring框架自带的对JDBC操作的封装,目的是提供统一的模板方法使对数据库的操作更加方便、友好,效率也不错,这篇文章主要介绍了SpringJdbcTemplate执行数据库操作,需要的朋友可以参考下
2022-11-13
2024-04-02
oracle数据库定时任务怎么写
oracle 数据库的定时任务,称为作业计划程序,可创建和管理定期运行命令或脚本的任务。创建任务的步骤包括:1. 使用 create job 语法创建作业;2. 使用 alter job 语句设置时间表,例如 daily at ;3. 使用
2024-04-08
2024-04-02