1. 程式人生 > >MySQL刪除數據後磁盤空間的釋放情況

MySQL刪除數據後磁盤空間的釋放情況

MySQL刪除數據後磁盤空間的釋放情況

MySQL刪除數據幾種情況以及是否釋放磁盤空間:
1、drop table table_name 立刻釋放磁盤空間 ,不管是 Innodb和MyISAM ;

2、truncate table table_name 立刻釋放磁盤空間 ,不管是 Innodb和MyISAM 。truncate table其實有點類似於drop table 然後creat,只不過這個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表以後雖然未釋放磁盤空間,但是下次插入數據的時候,仍然可以使用這部分空間。

MySQL刪除數據後磁盤空間的釋放情況