前言
我们在使用DELETE
删除数据时,发现表文件大小没有变化:
InnoDB直接将这些记录标记为删除,称为可复用的位置,之后插入数据会复用该位置,所以磁盘空间不会减少。
解决方案
执行OPTIMIZE TABLE
回收空间命令,该命令只对MyISAM
和InnoDB
表起作用:
OPTIMIZE TABLE 表名;
也可以通过ALTER TABLE命令重建表:
ALTER TABLE 表名 ENGINE=INNODB;
总结
delete 删除数据时,其实对应的数据行并不是真正的删除,仅仅是将其标记成可复用的状态,所以表空间不会变小。�