楼主: 时光人
1576 0

MySql定时清理某个时间之前的数据 [推广有奖]

  • 3关注
  • 34粉丝

已卖:165份资源

院士

23%

还不是VIP/贵宾

-

威望
1
论坛币
26913 个
通用积分
429.8724
学术水平
95 点
热心指数
109 点
信用等级
91 点
经验
39970 点
帖子
1630
精华
3
在线时间
580 小时
注册时间
2019-2-25
最后登录
2025-5-6

楼主
时光人 学生认证  发表于 2019-11-15 10:02:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

AIU人工智能学院:数据科学、人工智能从业者的在线大学。

数据科学(Python/R/Julia)数据分析、机器学习、深度学习


参与过一个项目,由于规划不合理,每天会产生20万条告警,导致查询速度变慢。同时由于数据量过大可能会导致磁盘空间不够的情况。一般可以通过程序代码定时清理的方式来进行。

现在可以通过MySql的时间进行定时清理,让数据库自己去清理过期数据。

创建事件

现在解释一下

第一行,表明了这个事件是由alex创建,事件名称为date_clean

第二行,表示这个事件定期执行

第三行,执行周期为每天一次

第四行,事件默认状态为不启动,开发是请写ENABLE或者不写

第五行,表明定期执行的Sql语句,上图语句表示删除删除30天之前的数据

Navicat创建事件

选择事件,点击新建事件

定义中填写需要执行的sql语句

计划页签填写执行周期,或者执行时间

点击保存即可

启动和停止事件

启动 ALTER EVENT `mydatabase`.`alarm_clean` ENABLE;

停止 ALTER EVENT ` mydatabase `.`alarm_clean` ENABLE;

注意

Mysql默认是不开启事件执行的

执行 show variables like 'event_scheduler';

如果是OFF的话则需要执行set global event_scheduler=1;

否则事件将不会被触发。

同时需要修改my.cnf,在[mysqld]下增加event_scheduler=ON,防止重启服务后event_scheduler被重置成OFF


关注“AIU人工智能”公众号,回复“白皮书”获取数据分析、大数据、人工智能行业白皮书及更多精选学习资料!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-6 14:10