mysql5.5 innodb进行表空间的整理 ALTER TABLE fee_sum_day_provice ENGINE=InnoDB
整理完成后查询下表的DATA_FREE 发现没有减小和整理之前一样 为啥呢 ALTER TABLE不咋好使呢?
ALTER TABLE命令作用:
执行ALTER TABLE重建操作,InnoDB会尝试将数据重新组织,以减小磁盘上的碎片和未使用的空间,但并不保证一定会减小DATA_FREE的值。
DATA_FREE值为啥不减小?
因为数据在InnoDB中是以页为单位存放,不是以字节为单位的,也就是说执行命令后表存放的页数量没有发生变化,即空间不会减少。
解决方案:
可以尝试使用 OPTIMIZE TABLE table_name 语句进行表碎片整理和空间回收,它可以进一步优化表空间的利用情,但无法保证减小DATA_FREE 值