0
根据文档,删除postgresql中的行后,它们仍然处于死状态,因此需要定期抽真空来回收这个空间。这是否也适用于从表中删除列时的行宽,还是永远分配的空间?删除列后VACUUM FULL是否缩小行宽?
根据文档,删除postgresql中的行后,它们仍然处于死状态,因此需要定期抽真空来回收这个空间。这是否也适用于从表中删除列时的行宽,还是永远分配的空间?删除列后VACUUM FULL是否缩小行宽?
答案是是 - 空间被回收。
从documentation约VACUUM
(粗体重点煤矿):
写入表的新副本,直到操作完成不释放旧副本
并从页面中的说明约ALTER TABLE
:
要强制立即回收由被删除的列占用的空间,您可以执行ALTER TABLE的一种形式来执行整个表的重写。这会导致重建每个行,并将删除的列替换为空值。
还有一:
根据参数你可能需要重写表以获得预期的效果。 这可以使用VACUUM FULL,CLUSTER或强制重写表的ALTER TABLE形式之一来完成。