And*_*rao 7 postgresql indexing vacuum
我有一个Postgres 9.0数据库,我经常采用它的数据转储.
这个数据库有很多索引,每次我恢复转储postgres启动后台任务真空吸尘器(是吗?).该任务消耗大量处理时间和内存来重新创建已还原转储的索引.
我的问题是:
谢谢,安德烈
如果你使用pg_dump两次,一次使用--schema-only,一次使用--data-only,你可以将模式输出分为两部分:第一部分使用裸表定义,最后部分使用约束和索引.可能用pg_restore做类似的事情.
最佳实践可能是
如果索引存在,批量加载将使 PostgreSQL 写入数据库和索引。批量加载将使您的表统计信息无用。但是如果你先加载数据,然后创建索引,统计数据会自动更新。
我们在版本控制下存储创建索引的脚本和在不同文件中创建表的脚本。这就是为什么。
在您的情况下,更改 autovacuum 设置可能会对您有所帮助。您也可以考虑为某些表或所有表禁用自动清理,但这可能有点极端。