0
根據文檔,刪除postgresql中的行後,它們仍然處於死狀態,因此需要定期抽真空來回收這個空間。這是否也適用於從表中刪除列時的行寬,還是永遠分配的空間?刪除列後VACUUM FULL是否縮小行寬?
根據文檔,刪除postgresql中的行後,它們仍然處於死狀態,因此需要定期抽真空來回收這個空間。這是否也適用於從表中刪除列時的行寬,還是永遠分配的空間?刪除列後VACUUM FULL是否縮小行寬?
答案是是 - 空間被回收。
從documentation約VACUUM
(粗體重點煤礦):
寫入表的新副本,直到操作完成不釋放舊副本
並從頁面中的說明約ALTER TABLE
:
要強制立即回收由被刪除的列佔用的空間,您可以執行ALTER TABLE的一種形式來執行整個表的重寫。這會導致重建每個行,並將刪除的列替換爲空值。
還有一:
根據參數你可能需要重寫表以獲得預期的效果。 這可以使用VACUUM FULL,CLUSTER或強制重寫表的ALTER TABLE形式之一來完成。