【发布时间】:2019-03-20 14:17:13
【问题描述】:
我有一个数据库,在一个表中我每天有超过 800 万次插入(记录随时间分布,大约每秒 90-100 次)。
每天我都会删除超过 7 天的所有记录,但表的磁盘空间并没有停止增长。
Autovacuum 在默认配置下处于“开启”状态。删除查询在当晚 2 点 55 分执行。表的最后一次自动清空大约在 3 小时后 6:32 并且没有第二次运行。
为什么每天的磁盘空间增加了大约 1GB?
我现在 autovacuum 不会立即释放磁盘空间,但我可以将删除的行用于新插入。
现在,我似乎正在删除记录,但我没有将可用空间用于新记录,而且表格还在不断增长。
每天删除旧记录后,表中剩余约5000万行,与存储的大小几乎相同。
Postgres 是否有可能想要达到它认为可以毫无问题地操作的表的特定大小?我没有尝试这个,因为没有那么多可用空间,当空间已满时,我TRUNCATE桌子。
【问题讨论】:
标签: postgresql autovacuum