麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1319
2023-05-16
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小时内删除侵权内容。