INSERT, 然后使用 EXECUTE 多次效率更高。这样就避免了
重复分析和规划 INSERT 的开销。
请注意,在加载大量数据行的时候,COPY 几乎总是比
INSERT 快,即使使用了 PREPARE 并且把多个 INSERT 命令绑
在一个事务中也是这样。
完成后运行 ANALYZE
不管什么时候,如果你在更新了表中的大量数据之后,
运行 ANALYZE 都是个好习惯。这包括批量加载大量数据到表。
运行 ANALYZE (或者 VACUUM ANALYZE) 可以保证规划器有表
数据的最新统计。如果没有统计数据或者统计数据太陈旧,
那么规划器可能选择很差劲的查询规划,导致统计信息不准
确或者不存在的表的性能很差。
pg_dump 的一些注意事项
pg_dump 生成的转储脚本自动使用上面的若干个技巧,
但不是全部。要尽可能快地加载 pg_dump 转储,我们需要手
工做几个事情。(请注意,这些要点适用于恢复一个转储,
而不是创建一个转储的时候。同样的要点也适用于使用 psql
加载一个文本转储或者使用 pg_restore 从 pg_dump 归档文
件加载的情况。)
缺省的时候,pg_dump 使用 COPY,并且在它生成一个完
整的包含模式和数据的转储的时候,它会很小心地先加载数
据。这几条技巧是自动处理的,然后在之后运行 ANALYZE。
评论