<强>一、背景强>
,由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间。即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的。在我们项目中由于不清理数据,一个表占的空间竟然达到了4 g之多。想想有多可怕…
,这里介绍的是用MySQL建立一个定时器事件,定期清除掉之前的不必要事件。
<强>二,内容强>
# 1,建立存储过程供事件调用 分隔符//如果存在middle_proce//下降过程 创建过程middle_proce () 开始 删除从jg_bj_comit_log comit_time & lt;SUBDATE(现在(),间隔2月); 优化表jg_bj_comit_log; 删除从jg_bj_order_create created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_order_create; 删除从jg_bj_order_match created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_order_match; 删除从jg_bj_order_cancel created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_order_cancel; 删除从jg_bj_operate_arrive created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_operate_arrive; 删除从jg_bj_operate_depart created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_operate_depart; 删除从jg_bj_operate_login created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_operate_login; 删除从jg_bj_operate_logout created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_operate_logout; 删除从jg_bj_operate_pay created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_operate_pay; 删除从jg_bj_position_driver created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_position_driver; 删除从jg_bj_position_vehicle created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_position_vehicle; 删除从jg_bj_rated_passenger created_on & lt;SUBDATE(现在(),间隔3个月); 优化表jg_bj_rated_passenger;//结束 分隔符; # 2,开启事件(要使定时起作用,MySQL的常量全球event_schduleer必须为在或者1) 显示变量如“event_scheduler” 集全球event_scheduler='在' # 3,创建Evnet事件 下降的事件如果存在middle_event; 创建事件middle_event 按计划每1天开始“2017-12-05 00:00:01” 完成后保存使 叫middle_proce (); # 4,开启事件事件 改变事件middle_event完成维护支持; # 5,关闭事件事件 改变事件middle_event完成保存禁用; >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
MySQL数据库事件定时执行任务详解