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连接的数据库->事件->找到对应的事件修改

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

相关推荐
不太可爱的叶某人2 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
量子联盟3 小时前
原创-基于 PHP 和 MySQL 的证书管理系统,免费开源
开发语言·mysql·php
飞翔的佩奇4 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
鬼才血脉5 小时前
Linux(centos)安装 MySQL 8
linux·mysql·centos
眠りたいです13 小时前
Mysql常用内置函数,复合查询及内外连接
linux·数据库·c++·mysql
M1A114 小时前
Java 面试系列第一弹:基础问题大盘点
java·后端·mysql
He.ZaoCha14 小时前
函数-1-字符串函数
数据库·sql·mysql
叁沐14 小时前
MySQL 09 普通索引和唯一索引,应该怎么选择?
mysql
Linda L15 小时前
数据库版本自动管理
运维·数据库·mysql
草履虫建模16 小时前
Redis:高性能内存数据库与缓存利器
java·数据库·spring boot·redis·分布式·mysql·缓存