在长期的数据更改过程中,索引文件和数据文件,都将产生空洞,形成碎片,我们可以通过一个nop操作(不产生对数据实质影响的操作)来修改表。
执行如下操作:delete from t9 where id=1; 操作完成后,数据应该减少三分之一才对。
执行完成该语句后,发现数据文件并没有减少三分之一,这样在数据文件中,就会产生了一个垃圾的空洞的数据文件,因此需要整理。
整理方法:
第一种方法:执行 alter table table_name engine; 原来的存储引擎。
第二种方法:执行 optimize table table_name;
执行后
注意:修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐,这个过程,如果表的行数比较大,也是比较耗费资源的操作,所以,不能频繁的修复。如果表的update操作很频繁,可以按周月来修复。