前言:
最近在开发一个数据展示的功能,每天的都会产生大量的数据记录,如果定期不清楚,数据量会很大,经过一番搜索学习,我选择使用MySQL的计划任务定时去清理数据,具体的使用方法如下:
正文:
一、查询MySQL计划任务是否开启:
SHOW VARIABLES LIKE 'event_scheduler';
二、配置MySQL计划任务:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
或者配置在配置文件中配置:[mysqld]:event_scheduler=ON 。
三、MySQL计划任务的语法:
四、MySQL计划任务的使用:
- 开启计划任务:
ALTER EVENT [event_name] ENABLE;
- 关闭计划任务:
ALTER EVENT [event_name] DISABLE;
- 查看定时任务:
SELECT * FROM information_schema.events;
- 删除计划任务:
DROP event [event_name];
五、MySQL计划任务的举例使用:
- 每天执行删除100天前的数据:
CREATE EVENT IF NOT EXISTS del_XXX_100day_ago
ON SCHEDULE EVERY 1 DAY
ON COMPLETION PRESERVE
COMMENT '删除100天前的数据'
DO DELETE FROM XXX WHERE execute_date = DATE_SUB(CURDATE(), interval 100 DAY)