我了解到,在mysql中执行DELETE sql不会释放空间,因此我对此进行了实验。
[在实验期间,我发现我的数据量很大(大约20000行)时,我删除了一半的行,数据长度没有减少。但是,当我的数据大小约为1000行时,我尝试删除一半的行。出乎意料的是,数据长度将减少。
这真是令人困惑。关于这个问题,我进行了很多搜索,但一无所获。是什么原因?
我的MySQL版本是5.6
InnoDB表统计信息不会在每次删除时更新。因此data_length
,index_length
,rows
,average_row_length
和data_free
可能无法始终描述表的精确状态。
您可能想阅读:
即使更新了表格统计信息,它们也不是准确的。它们是基于表的有限样本进行的估算。