2016-11-01 22 views
0

The innondb_file_per_table = 1MySQL 5.6 - InnoDB - DATA_FREE未使用,但表格不断增长

我们有一个data_free很大的大表。

我们会定期从该表中清除较旧的数据。

此前(当时是在MySQL 5.5)我们观察data_free正在消耗和档案过程中增加,后来被消耗,直到下一次运行档案。

但是在转移到5.6之后,我们看到data_free未被利用,但该表不断增长。

任何指针为什么会发生这种情况?

回答

0

这就是生活。 MySQL在向操作系统返回磁盘空间方面并不太好。

由于它是一个单独的.ibd文件,您可以在定期存档后立即执行OPTIMIZE TABLE。但随后它会回复到大尺寸。

数据是否为“滑动时间”?也就是说,你是否保留了一个月的价值,然后每晚去掉一天的价值?这是PARTITIONs闪耀的一种情况。 DROP PARTITION确实将分区使用的空间返回给操作系统。如果你想将旧日复制到其他地方,那么你需要“可移动的表空间”,而你需要5.6(或更好的,5.7)。

更多关于如何使用这样的分区:here