由于用户环境有张日志表每天程序都在狂插数据,导致不到一个月时间,这张日志表就高达200多万条记录,但是日志刷新较快,里面很多日志没什么作用,就写了个定时器,定期删除这张表的数据。
- 首先查看mysql是否开启定时任务开关
SHOW VARIABLES LIKE ‘event_scheduler’;
Value为ON则已打开,OFF则关闭

如果是OFF,就先打开:SET GLOBAL event_scheduler = ON;
然后创建我们想要的定时器及删除存储过程
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连接的数据库->事件->找到对应的事件修改
如果想要调整定时器执行时间间隔,可以直接在事件中修改

文章介绍了如何处理日志表数据快速增长的问题,通过在MySQL中设置定时任务,每天删除Sync_Time超过497小时的记录,以此来维护日志表的大小。创建了一个名为delplan的事件,每天自动执行删除操作,并提供了如何启用、禁用或调整定时器的说明。
3324

被折叠的 条评论
为什么被折叠?



