为什么 autovacuum 不清理我的 table?

why does autovacuum not vacuum my table?

我的模式中有一个 table 没有自动清理。如果我在 table 上 运行 VACUUM posts; 真空过程很好地完成,但 autovacuum 守护进程由于某种原因从不真空 table 。 有没有办法找出原因?这可能是什么原因?

很好,不用担心。

table 是唯一的中型(300 万行)。

如果死元组的数量超过活动元组的 autovacuum_vacuum_scale_factor(默认值:0.2),Autovacuum 将启动,因此如果超过 20% 的 table 已被删除或更新.

这通常很好,我不会改变它。但是如果你出于某种原因想要这样做,你可以这样做:

ALTER TABLE posts SET (autovacuum_vacuum_scale_factor = 0.1);