MySQL刪除數據幾種狀況以及是否釋放磁盤空間:mysql
一、drop table table_name 馬上釋放磁盤空間 ,無論是 Innodb和MyISAM ;sql
二、truncate table table_name 馬上釋放磁盤空間 ,無論是 Innodb和MyISAM 。truncate table其實有點相似於drop table 而後creat,只不過這個create table 的過程作了優化,好比表結構文件以前已經有了等等。因此速度上應該是接近drop table的速度;ide
三、delete from table_name刪除表的所有數據,對於MyISAM 會馬上釋放磁盤空間 (應該是作了特別處理,也比較合理),InnoDB 不會釋放磁盤空間;優化
四、對於delete from table_name where xxx帶條件的刪除, 無論是innodb仍是MyISAM都不會釋放磁盤空間;3d
五、delete操做之後使用optimize table table_name 會馬上釋放磁盤空間。無論是innodb仍是myisam 。因此要想達到釋放磁盤空間的目的,delete之後執行optimize table 操做。
六、delete from表之後雖然未釋放磁盤空間,可是下次插入數據的時候,仍然可使用這部分空間。 blog
刪除前:it