我有一个使用 PostgreSQL v11 运行的大型数据库,并且磁盘空间非常有限,所以我不得不VACUUM (FULL)
频繁地访问数据库(例如每天)。
但是吸尘是一项非常耗时的操作。此外,我经常遇到真空错误消息,例如
ERROR: canceling autovacuum task
CONTEXT: automatic vacuum of table ***
幸运的是,服务可以在一天中的特定时间点关闭,所以我可以在关闭数据库后转储数据库,立即恢复并重新启动服务。
此外,我发现“转储/恢复”比“清理”更快。
我的问题:“倾倒/恢复”所做的事情是否包括“吸满”所做的事情?
如果是这样,我可以这样做而不是吸尘。
是的,转储和恢复数据库的效果与
VACUUM (FULL)
. 但是每天都必须做这些事情是很痛苦的。您的数据库存储空间太少。人为地保持其紧凑可以节省空间并加快查询速度,但可能会减慢数据修改速度。正确的解决方案是增加您的存储空间并为您的数据库提供一些“喘息空间”。这将使您的问题消失,并且可能不需要像这样的重组。