首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动真空后不缩小pg_toast表的尺寸

自动真空后不缩小pg_toast表的尺寸
EN

Stack Overflow用户
提问于 2017-02-03 15:21:18
回答 1查看 1.8K关注 0票数 1

我正在使用Postgresql 9.3。

I有一个可怕的pg_toast表, pg_toast占27 GB。**

除非我误解了,否则这个pg_toast_675632太大了,因为我在数据表中有一个很大的json列,pg_toast_675632my_table有关。因此,我在my_table中大量简化了json (即从包含100个元素的json到2-5元素)。然而,在自动真空后,pg_toast_675632仍然是27 GB。这是因为自动真空不会将回收的空间返回到磁盘吗?参见这个链接23.1.2的第3段。

  1. 因此,根据上述链接中的文档,需要手动运行VACUUM (FULL) pg_toast_675632**?**吗?

我知道VACUUM (FULL)需要很长的时间,并且会在持续时间内锁定写操作的pg_toast_675632

  1. VACUUM FULL pg_toast_675632的风险是什么?这是否等同于锁定my_table,因为这是与pg_toast-675632相关的?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-03 15:43:46

正确的自动真空不会回收空间。

您必须在VACUUM (FULL)上运行my_table,这也将腾出吐司表中的空间。

缺点是ACCESS EXCLUSIVE锁会在VACUUM (FULL)运行时阻止所有并发活动。

作为超级用户,您可以直接在烤面包桌上运行VACUUM,但我看不出它的优点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42027513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档