gpt4 book ai didi

database - 什么时候需要手动重新分析 PostgreSQL 中的表?

转载 作者:行者123 更新时间:2023-12-02 01:30:03 24 4
gpt4 key购买 nike

最近我将主键从整数迁移到 bigint 并发现了一个 article其中作者更新PK数据类型后手动更新表统计信息:

-- reanalyze the table in 3 steps
SET default_statistics_target TO 1;
ANALYZE [table];
SET default_statistics_target TO 10;
ANALYZE [table];
SET default_statistics_target TO DEFAULT;
ANALYZE [table];

据我了解,分析器会自动在后台运行以保持统计数据最新。在 Postgres docs (注释部分)我发现分析器可以在一些重大更改后手动运行。

所以问题是:

  • 如果启用了 autovacuum,手动运行分析器是否有意义?如果是,在什么情况下?
  • 它的最佳实践是什么(例如上面的 default_statistics_target 切换)?

最佳答案

自动分析由数据修改触发:它通常在表的 10% 发生更改时运行(使用 INSERTUPDATEDELETE) .如果您重写表或创建表达式索引,则不会触发自动分析。在这些情况下,运行手动 ANALYZE 是个好主意。

不要为围绕 default_statistics_target 的舞蹈而烦恼。一个简单的单个 ANALYZE 选项卡; 就可以解决问题。

关于database - 什么时候需要手动重新分析 PostgreSQL 中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73545924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com