MySQL什麼情況下刪除資料會釋放空間

chenfeng發表於2017-04-11
1、drop table table_name 立刻釋放磁碟空間 ,不管是 Innodb和MyISAM


2、truncate table table_name 立刻釋放磁碟空間 ,不管是 Innodb和MyISAM 。truncate table其實有點類似於drop table 然後create。只不過這個create table 的過程做了最佳化,比如表結構檔案之前已經有了等等,就不需要重新再搞一把。所以速度上應該是接近drop table的速度。


3、對於delete from table_name :刪除表的全部資料
對於MyISAM 會立刻釋放磁碟空間 (應該是做了特別處理,也比較合理)
InnoDB 不會釋放磁碟空間


4、對於delete from table_name where xxx帶條件的刪除,不管是innodb還是MyISAM都不會釋放磁碟空間。


5、delete操作以後 使用optimize table table_name 會立刻釋放磁碟空間。不管是innodb還是myisam。所以要想達到清理資料的目的,請delete以後執行optimize table 操作。


6、delete from表以後雖然未釋放磁碟空間,但是下次插入資料的時候,仍然可以使用這部分空間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2137030/,如需轉載,請註明出處,否則將追究法律責任。

相關文章