postgresql - 为什么 autovacuum 不吸尘我的 table ?

标签 postgresql postgresql-9.5 autovacuum

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

table stats

最佳答案

这很好,不用担心。

该表是唯一一个中等大小的表(300 万行)。

如果死元组的数量超过事件元组的 autovacuum_vacuum_scale_factor(默认值:0.2),那么如果超过 20% 的表已被删除或更新,Autovacuum 将启动。

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

ALTER TABLE posts SET (autovacuum_vacuum_scale_factor = 0.1); 

关于postgresql - 为什么 autovacuum 不吸尘我的 table ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50872099/

相关文章:

postgresql - 管理函数和函数体更新

POSTGRESQL 客户端编码与服务器端编码

sql - PostgreSQL 将行转置为列

postgresql - 在 PostgreSQL 中为表启用 autovacuum 是否安全

postgresql - 为什么 vacuum analyze 会更改查询计划而 analyze 不会?

postgresql - autovacuum 中的 Postgres pg_toast - 哪个表?

node.js - 为什么我不能使用 node-postgres 从数据库中删除?

django - 在 Django 中使迁移有条件

sql - 更改用户的默认架构

database - Postgresql 9.5 中的方法复制