優化mysql表空間 mysql表空間釋放情況彙總

2021-10-17 12:18:21 字數 771 閱讀 5474

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 ***帶條件的刪除, 不管是innodb還是myisam都不會釋放磁碟空間;

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

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

刪除前:

mysql 表空間收縮 mysql壓縮表空間

repair table table name 修復表 optimize table table name 優化表 optimize local no write to binlog table tbl name tbl name 如果您已經刪除了表的一大部分,或者如果您已經對含有可變長度行的表 含...

mysql 清理表空間 MySQL 清除表空間碎片

碎片產生的原因 1 表的儲存會出現碎片化,每當刪除了一行內容,該段空間就會變為空白 被留空,而在一段時間內的大量刪除操作,會使這種留空的空間變得比儲存列表內容所使用的空間更大 2 當執行插入操作時,mysql會嘗試使用空白空間,但如果某個空白空間一直沒有被大小合適的資料占用,仍然無法將其徹底占用,就...

mysql 表空間碎片 MySQL 清除表空間碎片

碎片產生的原因 1 表的儲存會出現碎片化,每當刪除了一行內容,該段空間就會變為空白 被留空,而在一段時間內的大量刪除操作,會使這種留空的空間變得比儲存列表內容所使用的空間更大 2 當執行插入操作時,mysql會嘗試使用空白空間,但如果某個空白空間一直沒有被大小合適的資料占用,仍然無法將其徹底占用,就...