MySQL存储方式为InnoDB,MySQL带where条件删除数据是,文件.IBD内存却没有变动。
是因为MySQL带条件的话,将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间,可以使用OPTIMIZE TABLE来回收未使用的空间,并整理数据文件的碎片。
sql语句为OPTIMIZE TABLE 表名;
实例:在本地查看表格.IBD内存为468MB,删除一万条数据之后,内存不变;
执行结果:
表格内存变为:176KB.验证有效
OPTIMIZE TABLE对于BOLB与Text值删除回收非常有效。