首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加主键和索引时何时分析/真空/重新索引

添加主键和索引时何时分析/真空/重新索引
EN

Database Administration用户
提问于 2019-08-12 18:46:47
回答 2查看 881关注 0票数 1

我有一个循环作业,它从模板创建Postgres (v11)数据库,并将其加载到数据中。数据的规模是在数以百万计的行的10s或1000之间,因此,出于性能原因,在创建任何主键或索引之前,我会批量插入数据。这是我目前的行动顺序:

  1. 创建表
  2. 批量COPY所有数据
  3. 创建主键
  4. 创建附加索引

创建主键和索引是此工作流中最慢的部分。当通过分析/真空/重新索引重新计算统计数据时,在这个工作流中是否有一点是有用的,甚至是必要的?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2019-08-12 21:12:01

作为步骤2.5,您可能应该做一个真空操作。如果您将其作为步骤5执行,或者允许autovac隐式地执行它(作为步骤5+something),那么您将无用地清除不需要它的索引。

如果其中任何一个索引是表示索引,则应将其作为步骤5进行分析,否则,将步骤2.5设为真空分析。表达式索引有它们自己收集的统计数据,但是当然,如果它们在分析时不存在,那就不起作用。

票数 2
EN

Database Administration用户

发布于 2019-08-12 20:01:16

若要加快索引创建,请增加maintenance_work_mem

此外,还可以提高max_wal_size以减少检查点的数量。如果您根本不需要崩溃恢复(也就是说,您很乐意在崩溃的情况下重新创建数据库),您可以使用未登录的表来提高性能。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/245164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档