pg_statistic
#目录 pg_statistic
存储关于数据库内容的统计数据。 条目由 ANALYZE
创建,并随后由查询计划器使用。 请注意,即使假设统计数据是最新的,所有统计数据本质上都是近似的。
通常,对于已分析的每个表列,都有一个条目,其中 stainherit
= false
。 如果该表具有继承子表或分区,则还会创建第二个条目,其中 stainherit
= true
。 此行表示该列在继承树上的统计信息,即使用 SELECT
时将看到的统计信息,而 column
FROM table
*stainherit
= false
行表示 SELECT
的结果。column
FROM ONLY table
pg_statistic
还存储有关索引表达式值的统计数据。 这些被描述为实际数据列;特别是,starelid
引用索引。 但是,不会为普通的非表达式索引列创建条目,因为它将与基础表列的条目冗余。 目前,索引表达式的条目始终具有 stainherit
= false
。
由于不同类型的数据可能适合不同的统计信息,因此 pg_statistic
的设计初衷是不对它存储的统计信息类型做太多假设。 只有非常通用的统计信息(例如空值)才在 pg_statistic
中给出专用列。 其他所有内容都存储在“槽”中,这些槽是相关列的组,其内容由槽的列中的代码编号标识。 有关更多信息,请参见 src/include/catalog/pg_statistic.h
。
pg_statistic
不应由公众读取,因为即使是关于表内容的统计信息也可能被认为是敏感的。 (示例:薪资列的最小值和最大值可能非常有趣。)pg_stats
是一个公开可读的 pg_statistic
视图,它仅公开有关当前用户可读的表的信息。
表 51.51. pg_statistic
列
列 类型 描述 |
---|
所描述的列所属的表或索引 |
所描述的列的编号 |
如果为 true,则统计信息包括来自子表的值,而不仅仅是指定关系中的值 |
列的条目为空的比例 |
非空条目的平均存储宽度(以字节为单位) |
列中不同的非空数据值的数量。 大于零的值是不同的实际值数量。 小于零的值是表中行数的乘数的负数;例如,大约 80% 的值是非空的,并且每个非空值平均出现大约两次的列可以由 |
一个代码编号,指示存储在 |
用于派生存储在第 |
用于派生存储在第 |
适用于第 |
适用于第 |
如果您在文档中看到任何不正确的内容,与您使用特定功能的经验不符或需要进一步澄清的内容,请使用此表格报告文档问题。