mysql使用optimize释放空间

Posted 东南风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql使用optimize释放空间相关的知识,希望对你有一定的参考价值。

 

 

CREATE PROCEDURE `sp_optimize_table`() 
BEGIN
declare l_delete_date varchar(16);
declare l_state_date  varchar(16);
declare l_dutyno      int;
declare l_row_cnt int DEFAULT 0;
declare rn        int default 0;
declare i         int default 0;
set l_dutyno=101;
set l_delete_date=date_format(DATE_ADD(now(),INTERVAL -30 day),\'%Y-%m-%d\'); /*删除90天之前的*/
set l_state_date=date_format(now(),\'%Y%m%d\');



set i=21;
while i<=50 DO
insert into tb_stat_duty_log(dutydate,dutyno,status,remark) values(l_state_date,l_dutyno,0,concat(\'开始optimize表app_message_\',i));
      set @strsql01 = CONCAT(\'optimize table db_pushmsg.app_message_\',i);
      /*set @strsql01 = CONCAT(\'optimize table db_admin.tb_stat_duty_log\');*/
      /*select @strsql01;*/
      PREPARE stmt01 FROM @strsql01;
      execute stmt01;
      deallocate prepare stmt01;

insert into tb_stat_duty_log(dutydate,dutyno,status,remark) values(l_state_date,l_dutyno,1,concat(\'结束optimize表app_message_\',i));
set i = i +1;

end while;

END 

 

以上是关于mysql使用optimize释放空间的主要内容,如果未能解决你的问题,请参考以下文章

mysql optimize table

小白学习MySQL - InnoDB支持optimize table?

mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

mysql删除记录后,使用optimize回收资源

mysql删除记录后,使用optimize回收资源

MySQL中optimize优化表