如何釋放已刪除的InnoDB磁盤空間

 
Innodb數據庫對於已經刪除的數據只是標記爲刪除,並不真正釋放所佔用的磁盤空間,這就導致InnoDB數據庫文件不斷增長。如果想徹底釋放這些已經刪除的數據,需要把數據庫導出,刪除InnoDB數據庫文件,然後再倒入。 下面是基本的步驟:

1 使用mysqldump命令將InnoDB數據庫導出

2 停止MySQL

3 刪除所有InnoDB數據庫文件和日誌

4 啓動MySQL並自動重建InnoDB數據庫文件和日誌文件

5 導入前面備份的數據庫文件

有一點要注意,你配置了MySQL數據庫複製,當你導入數據庫備份文件的時候,所有的Query都可能會被寫入Binlog,可以執行SET SQL_LOG_BIN = 0;暫時停止Binlog的寫入。

還有一種方式是在創建數據庫的時候設置innodb_file_per_table,這樣InnoDB會對每個表創建一個數據文件,然後只需要運行OPTIMIZE TABLE 命令就可以釋放所有已經刪除的磁盤空間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章