pg_dump不是db

时间:2018-02-17 14:22:26

标签: postgresql postgresql-9.1 database-indexes pg-dump reindex

我有一个数据库db1,它工作得非常慢。它使用连接几分钟执行硬查询。我创建了该数据库的副本:db2。然后我创建并调整了一些索引,db2开始工作得更快!之后我的目标是将db1快速调整为db2。我复制了db2(pg_dump -Fc db2> db2.dump)并将其恢复为新的db1。然后我测试了它的速度。但工作速度不一样!新的db1要慢得多(就像之前一样)。这里的问题是什么? pg_dump是否会转储db中的所有内容?数据,索引等?请指教。

2 个答案:

答案 0 :(得分:0)

加载后,statictics表仍为空(它们不是转储的一部分)。您需要手动运行analyzeas explained in the postgres manual

答案 1 :(得分:0)

pg_dump转储所有对象定义,表,视图,索引,类型和执行操作。您已重置缓存并销毁所有统计信息,因此在新恢复中运行相同查询时可能会遇到错误的查询时间,您可以执行ANALYZE刷新所有统计信息,但请考虑您现在已经在如前所述,群集 db2 + db1 而不是仅db1 ,因此缓存不太可用于db1,您必须在进行分析之前销毁db2。