我正在使用Postgresql 9.3。
I有一个可怕的pg_toast表, pg_toast占27 GB。**
除非我误解了,否则这个pg_toast_675632太大了,因为我在数据表中有一个很大的json列,pg_toast_675632与my_table有关。因此,我在my_table中大量简化了json (即从包含100个元素的json到2-5元素)。然而,在自动真空后,pg_toast_675632仍然是27 GB。这是因为自动真空不会将回收的空间返回到磁盘吗?参见这个链接23.1.2的第3段。
VACUUM (FULL) pg_toast_675632**?**吗?我知道VACUUM (FULL)需要很长的时间,并且会在持续时间内锁定写操作的pg_toast_675632。
VACUUM FULL pg_toast_675632的风险是什么?这是否等同于锁定my_table,因为这是与pg_toast-675632相关的?发布于 2017-02-03 15:43:46
正确的自动真空不会回收空间。
您必须在VACUUM (FULL)上运行my_table,这也将腾出吐司表中的空间。
缺点是ACCESS EXCLUSIVE锁会在VACUUM (FULL)运行时阻止所有并发活动。
作为超级用户,您可以直接在烤面包桌上运行VACUUM,但我看不出它的优点。
https://stackoverflow.com/questions/42027513
复制相似问题