idb是表空间文件,一般的删除数据不会真正的把数据从表中删除,会转换成碎片。
SHOW TABLE STATUS LIKE "ds_log_detail"\G
查询结果中的Index_length是索引的数量,Data_length是碎片的数量。
OPTIMIZE TABLE ds_log_detail;
优化整理碎片,会锁表操作,建议要避开业务时间操作。
MySQL 5.7之后的innodb表推荐使用ALTER TABLE ds_log_detail
ENGINE=InnoDB;来对表空间碎片进行优化。
需要先删除ds_log_detail.idb文件,再执行碎片优化吗?
@小黑狗cathy: 不用删除
@jun-x: 好的,多谢啦。
有个问题,我的硬盘已经满了。这是后执行整理操作,这两条命令都不能用。会报错xx表is full。如果我增加磁盘大小,是他有多余的作业空间,能解决么?
已采用,多谢