Mysql定时删除表数据

由于用户环境有张日志表每天程序都在狂插数据,导致不到一个月时间,这张日志表就高达200多万条记录,但是日志刷新较快,里面很多日志没什么作用,就写了个定时器,定期删除这张表的数据。

  1. 首先查看mysql是否开启定时任务开关
    SHOW VARIABLES LIKE 'event_scheduler';
    Value为ON则已打开,OFF则关闭

    如果是OFF,就先打开:SET GLOBAL event_scheduler = ON;

然后创建我们想要的定时器及删除存储过程

c 复制代码
delimiter $$  
drop event if exists delplan;  
create event delplan
on schedule   
EVERY 1 DAY  
 STARTS '2019-07-02 00:00:00'  
ON COMPLETION  PRESERVE ENABLE  
do  
begin  
  delete from sys_prepose_sync_record where Sync_Time<(CURRENT_TIMESTAMP()-INTERVAL 497 HOUR);  
end $$  
delimiter;

最后把上面的语句在数据库执行一遍,大功告成,可以删除Sync_Time在497小时之前的数据了。

如果不想用该定时器了的话,可以直接在数据库事件中将状态更改为ENable即可。

使用navicat连接的数据库->事件->找到对应的事件修改

如果想要调整定时器执行时间间隔,可以直接在事件中修改

相关推荐
刀法如飞10 小时前
开箱即用的 DDD(领域驱动设计)工程脚手架,基于 Spring Boot 4.0.1 和 Java 21
java·spring boot·mysql·spring·设计模式·intellij-idea
zbguolei10 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
luoluoal13 小时前
基于python大数据的电影市场预测分析(源码+文档)
python·mysql·django·毕业设计·源码
conca13 小时前
Java+MySQL时区难题-Date自动转换String差8小时
数据库·mysql
壹米饭13 小时前
MYSQL进阶:删除视图时视图被lock解决方案
后端·mysql
oMcLin14 小时前
如何在Ubuntu 22.04 LTS上配置并优化MySQL 8.0分区表,提高大规模数据集查询的效率与性能?
android·mysql·ubuntu
一路向北⁢15 小时前
MySQL 5.7 表分区使用说明(视频系统实战)
mysql·分区·分表·表分区
齐鲁大虾16 小时前
SQL Server 和 MySQL的区别
数据库·mysql
东方巴黎~Sunsiny17 小时前
mysql大表空间整理注意点
数据库·mysql
AllData公司负责人18 小时前
AllData数据中台-数据同步平台集成开源项目Seatunnel-Web,完成Mysql到Doris同步流程
数据库·mysql·开源