Kol*_*llp 4 postgresql index vacuum
在我的交易中,我正在创建一个临时表:
create temporary table x on commit drop as
select ...
Run Code Online (Sandbox Code Playgroud)
我还在该表上添加了一个索引:
create index on x(some_column);
Run Code Online (Sandbox Code Playgroud)
现在有必要analyze
在那个桌子上跑吗?或者我是否只需要在索引创建后分析表的更新/删除?
换句话说,我的问题是:索引的创建是否已经意味着analyze
执行?
如果索引只是像您的情况一样位于简单的列上,则在创建索引后不需要ANALYZE
表。
这是因为无论该列是否有索引,总是会收集有关表列的值分布的统计信息。
但是,如果您正在索引类似upper(some_column)
或的表达式(CAST(some_column AS date))
,则应ANALYZE
在创建索引后运行。
然后 PostgreSQL 还将收集有关索引表达式的值分布的统计信息。这会在 autoanalyze 运行时自动发生,但最好在创建索引后立即手动执行此操作,以便立即获得良好的统计信息。
归档时间: |
|
查看次数: |
1755 次 |
最近记录: |