MySQL数据库小项目日志表定期删除实现方案

网友投稿 1319 2023-05-16

MySQL数据库小项目日志表定期删除实现方案

MySQL数据库小项目日志表定期删除实现方案

最近需要对一个对数据表做清理的操作,这个环境是一个线上业务,因为各种原因,表中的数据比较臃肿,而磁盘空间又比较小,所以经常导致磁盘空间爆满,和业务确认后对数据做定时删除,实现方式如下,以下针对小项目。

1. 开启事件调度器

set global event_scheduler= ON;             show variables like '%event_scheduler%';#my.cnf增加参数event_scheduler = on

2. 创建日志删除记录表

CREATE TABLE IF NOT EXISTS mq_log( name VARCHAR(400) NOT NULL COMMENT '删除信息', row INT COMMENT '删除行数', del_time TIMESTAMP COMMENT '删除时间') COMMENT = '日志删除记录表';

3. 创建日志删除存储过程

这里主要用了异常记录、影响行数记录、事务处理几个特点

4. 创建一个每天凌晨1点执行存储过程的定时任务

DROP event IF EXISTS e_del_mqlog;     CREATE EVENT e_del_mqlog     ON SCHEDULE   EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)  DO call del_mq_log();

5. 第一次删除需做回收

alter table lcp_mq_record engine=innodb;alter table lcp_dd_service_record engine=innodb;alter table lcp_api_service_record engine=innodb;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系小编 edito_r@163.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文总结MySQL数据库事件--定时任务实现方式
下一篇:分享几道 Redis 高频面试题,面试不用愁
相关文章