当删除一个表的大部分数据后,表文件没有变化
innodb的数据是按照B+树的数据结构进行存放的,当删除其中一个数据页中的一行时,只是对这一行进行了标记,在以后插入数据时,可以复用这一行重新插入数据,当删除一页,则这一页也不会被释放,而是可以服用到其他节点上。
不止是删除数据会造成空洞,插入数据也会。
为了解决这个问题:需要重建表alter table xxx engine=innodb
innodb的数据是按照B+树的数据结构进行存放的,当删除其中一个数据页中的一行时,只是对这一行进行了标记,在以后插入数据时,可以复用这一行重新插入数据,当删除一页,则这一页也不会被释放,而是可以服用到其他节点上。
不止是删除数据会造成空洞,插入数据也会。
为了解决这个问题:需要重建表alter table xxx engine=innodb