2016-11-01 32 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