MySQL数据库中怎么定期删除日志表

54次阅读
没有评论

共计 1899 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MySQL 数据库中怎么定期删除日志表,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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. 创建日志删除存储过程

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

drop procedure if exists del_mq_log;DELIMITER // create procedure del_mq_log()BEGIN DECLARE affect_rows INT; DECLARE affect_rows2 INT; DECLARE affect_rows3 INT; declare v_commit int default 2; --  定义事务用,1 为正常,-10 为失败  declare msg text;--  记录错误信息  --  异常的时候 msg 捕获报错信息  declare continue handler for sqlexception begin get diagnostics condition 1 msg = message_text;set v_commit = -10; end ; start transaction; --  设置事务  delete from lcp_mq_record where last_update_date   DATE_SUB(CURDATE(),INTERVAL 30 DAY); select ROW_COUNT() into @affect_rows; delete from lcp_dd_service_record where last_update_date   DATE_SUB(CURDATE(),INTERVAL 30 DAY); select ROW_COUNT() into @affect_rows2; delete from lcp_api_service_record where last_update_date   DATE_SUB(CURDATE(),INTERVAL 30 DAY); select ROW_COUNT() into @affect_rows3; insert into mq_log values( 删除 lcp_mq_record 成功 ,@affect_rows,now()),(删除 lcp_dd_service_record 成功 ,@affect_rows2,now()),(删除 lcp_api_service_record  成功 ,@affect_rows3,now()); --  记录删除情况  --  异常回滚且记录日志  if v_commit = -10 then ROLLBACK; insert into mq_log values(msg,0,now()); end if ;END//DELIMITER ;

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;

关于 MySQL 数据库中怎么定期删除日志表就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计1899字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)