我在 Postgresql 9.3 上。
我有一个巨大的 pg_toast 表,pg_toast_675632
占用 27 GB。
除非我有误解,否则它pg_toast_675632
是如此之大,因为我json
在数据表中有一个大的列pg_toast_675632
与my_table
. 所以我大量简化了 json my_table
(即从 100 个元素的 json 到 2-5 个元素)。但是,在 autovacuum 之后pg_toast_675632
仍然是 27 GB。这是因为 autovacuum 不会将回收的空间返回到磁盘吗?请参阅此链接中 23.1.2 的第 3 段。
- 那么根据上面链接中的文档,我需要手动运行
VACUUM (FULL) pg_toast_675632
吗?
我知道这VACUUM (FULL)
需要很长时间,并且会在pg_toast_675632
此期间锁定 from 写入。
- 有哪些风险
VACUUM FULL pg_toast_675632
?这是否等同于锁定my_table
,因为这pg_toast-675632
是相关的?