gpt4 book ai didi

postgreSQL - pg_class 问题

转载 作者:行者123 更新时间:2023-11-29 13:07:31 25 4
gpt4 key购买 nike

PostgreSQL 将有关表的统计信息存储在名为 pg_class 的系统表中。查询规划器为每个查询访问该表。这些统计数据只能使用分析命令进行更新。如果不经常运行分析命令,则此表中的统计信息可能不准确,查询计划器可能会做出错误的决定,从而降低系统性能。另一种策略是查询规划器为每个查询(包括选择、插入、更新和删除)生成这些统计信息。这种方法将允许查询规划器拥有尽可能最新的统计信息。

为什么 postgres 总是依赖 pg_class?

最佳答案

pg_class 不包含规划器所需的所有统计信息,它仅包含有关表结构的信息。 analyze 命令生成的统计信息包含有关每列中存在的值的信息,因此在执行如下命令时:

SELECT * FROM tab WHERE cname = "pg";

计划者知道表中有多少行以及 cname 列中有多少行的值为“pg”。 pg_class 中不存在这些信息。

PostgreSQL 的另一个不错的特性是 autovacuum,在 99,9999% 的情况下应该启用它,以便数据库在某些(可以在配置文件中定义)行数发生变化时立即实现统计信息。这最大限度地减少了由于错误的表统计信息而导致执行计划错误的可能性。

关于postgreSQL - pg_class 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2658245/

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