【问题标题】:Does VACUUM FULL shrink row width after deleting a column?VACUUM FULL 删除列后是否会缩小行宽?
【发布时间】:2016-08-22 15:20:40
【问题描述】:

根据文档,在 postgresql 中删除行后,它们仍处于死状态,因此需要定期清理以回收此空间。从表中删除列时,这是否也适用于行宽,或者该空间是否永远分配?

【问题讨论】:

    标签: postgresql vacuum


    【解决方案1】:

    答案是 - 空间被回收。

    来自documentation 关于VACUUM(我的粗体强调):

    它会写入表的新副本,并且在操作完成之前不会释放旧副本

    还有关于ALTER TABLE的页面注释:

    要强制立即回收被删除的列占用的空间,您可以执行 ALTER TABLE 的一种形式,该形式执行整个表的重写。这会导致重建每一行,并将删除的列替换为空值。

    还有一个:

    根据参数,您可能需要重写表格以获得所需的效果。 这可以通过 VACUUM FULL、CLUSTER 或强制表重写的 ALTER TABLE 形式之一来完成。

    【讨论】:

      猜你喜欢
      • 2018-04-09
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2014-06-19
      • 2018-08-07
      相关资源
      最近更新 更多