【发布时间】:2017-02-03 15:21:18
【问题描述】:
我使用的是 Postgresql 9.3。
我有一个巨大的 pg_toast 表,pg_toast_675632,占用 27 GB。
除非我误会,否则这个pg_toast_675632 如此之大是因为我在数据表中有一个很大的json 列与pg_toast_675632 相关,my_table。所以我在my_table 中大量简化了 json(即从 100 个元素的 json 到 2-5 个元素)。但是,在 autovacuum 之后,pg_toast_675632 仍然是 27 GB。这是因为 autovacuum 不会将回收的空间返回到磁盘吗? See the 3rd paragraph of 23.1.2 at this link.
-
那么根据上面链接中的文档,我需要手动运行
VACUUM (FULL) pg_toast_675632吗?
我知道VACUUM (FULL) 需要很长时间,并且会在此期间锁定pg_toast_675632 以防写入。
-
VACUUM FULL pg_toast_675632有什么风险?这是否等同于锁定my_table,因为这就是pg_toast-675632的相关内容?
【问题讨论】:
标签: postgresql vacuum autovacuum