PostgreSQL n_不同的统计设置

PostgreSQL n_不同的统计设置,postgresql,query-planner,Postgresql,Query Planner,在PostgreSQL中是否有多种方法设置n_distinct?这两种方法似乎在做相同的事情,但最终在pg\u属性中更改了不同的值。这两个命令之间有什么区别 alter table my_table alter column my_column set(n_distinct=500); alter table my_table alter column my_column set statistics 1000; 选择 c、 雷尔纳姆, a、 地址:, a、 律师, a、 attstatta

在PostgreSQL中是否有多种方法设置
n_distinct
?这两种方法似乎在做相同的事情,但最终在
pg\u属性中更改了不同的值。这两个命令之间有什么区别

alter table my_table alter column my_column set(n_distinct=500);
alter table my_table alter column my_column set statistics 1000;
选择
c、 雷尔纳姆,
a、 地址:,
a、 律师,
a、 attstattarget
从…起
丙类
内连接
pg_属性a
关于c.oid=a.attrelid
哪里
c、 relname='my_table'
和
a、 attname=‘我的_列’
订购人
c、 雷尔纳姆,
a、 姓名;
这两者似乎在做同样的事情

你为什么这么说?这两个命令明显不同。两者都与列统计和查询计划有关。但是他们做的事情非常不同

统计目标

控制通过
ANALYZE
为此列累积的统计信息的详细程度。见:

设置是完全不同的。这意味着对给定列预期的不同值的数量(或比率)进行硬编码。(但仅在下一次
分析后有效)

dba.SE上的相关答案,以及关于
n_distinct
的更多信息:

这两者似乎在做同样的事情

你为什么这么说?这两个命令明显不同。两者都与列统计和查询计划有关。但是他们做的事情非常不同

统计目标

控制通过
ANALYZE
为此列累积的统计信息的详细程度。见:

设置是完全不同的。这意味着对给定列预期的不同值的数量(或比率)进行硬编码。(但仅在下一次
分析后有效)

dba.SE上的相关答案,以及关于
n_distinct
的更多信息:

Name         |Value           
-------------|----------------
relname      |my_table       
attname      |my_column         
attoptions   |{n_distinct=500}
attstattarget|1000