truncate 釋放表空間

2021-08-18 09:21:48 字數 588 閱讀 2307

truncate操作,同沒有where條件的delete操作十分相似,只是把表裡的資訊全部刪除,但是表依然存在.

例如:

truncate table  xx

truncate不支援回滾,並且不能truncate乙個帶有外來鍵的表,如果要刪除首先要取消外來鍵,然後再刪除.

truncate table 後,有可能表空間仍沒有釋放,可以使用如下語句:

alter table 表名稱 deallocate   unused keep 0;

注意如果不加keep 0的話,表空間是不會釋放的.

例如:

alter table f_minute_td_net_fho_b7 deallocate   unused keep 0;
或者:
truncate table (schema)table_name drop(reuse) storage;
才能釋放表空間.

例如:

truncate table  test1 drop storage;

表空間釋放案例

某次發現資料庫中某個表空間使用率已經達到99.9 檢視資料庫表空間使用率 select a.tablespace name 表空間名 total 表空間大小 free 表空間剩餘大小 total free 表空間使用大小 total 1024 1024 1024 表空間大小 g free 1024 ...

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

mysql刪除資料幾種情況以及是否釋放磁碟空間 1 drop table table name 立刻釋放磁碟空間 不管是 innodb和myisam 2 truncate table table name 立刻釋放磁碟空間 不管是 innodb和myisam truncate table其實有點類似...

oracle表空間的釋放

1.shrink space 優點 降低高水位時索引不會失效 缺點 不能將表移動到其他表空間 高水位降低效果沒有move明顯 同時在執行命令前要先執行 alter table table name enable row movement允許行移動 也會表會產生行級鎖 shrink比move更耗費cp...