存储参数

关系特定的用户定义属性

存储参数(也称为“relopts”/“reloptions”/“关系选项”)是关系特定的参数,用于修改 PostgreSQL 与该关系的交互方式,例如 fillfactor,它确定在表的页面上保留多少空间以供将来更新,或定义自定义的自动vacuum设置。

存储参数是在 PostgreSQL 8.2 中引入的。

表存储参数和引入版本

参数 自版本
autovacuum_enabled, toast.autovacuum_enabled 8.4
autovacuum_analyze_scale_factor 8.4
autovacuum_analyze_threshold 8.4
autovacuum_freeze_max_age, toast.autovacuum_freeze_max_age 8.4
autovacuum_freeze_min_age, toast.autovacuum_freeze_min_age 8.4
autovacuum_freeze_table_age, toast.autovacuum_freeze_table_ag 8.4
autovacuum_multixact_freeze_min_age, toast.autovacuum_multixact_freeze_min_age 9.3
autovacuum_multixact_freeze_max_age, toast.autovacuum_multixact_freeze_max_age 9.3
autovacuum_multixact_freeze_table_age, toast.autovacuum_multixact_freeze_table_age 9.3
autovacuum_vacuum_cost_delay, toast.autovacuum_vacuum_cost_delay 8.4
autovacuum_vacuum_cost_limit, toast.autovacuum_vacuum_cost_limit 8.4
autovacuum_vacuum_scale_factor, toast.autovacuum_vacuum_scale_factor 8.4
autovacuum_vacuum_threshold, toast.autovacuum_vacuum_threshold 8.4
fillfactor 8.2
log_autovacuum_min_duration, toast.log_autovacuum_min_duration 9.2
parallel_insert_enabled 14
parallel_workers 9.6
toast_tuple_target 11
user_catalog_table 9.4
vacuum_index_cleanup, toast.vacuum_index_cleanup 12
vacuum_truncate, toast.vacuum_truncate 12

更改历史记录

示例

创建表时可以设置存储参数,例如

CREATE TABLE foo (id INT) WITH (fillfactor=75, log_autovacuum_min_duration=10)

并使用以下命令进行更改,例如

ALTER TABLE foo SET (log_autovacuum_min_duration=50)

关系的存储参数记录在其 pg_class 条目中的 reloptions 列(类型 TEXT[])中,并且可以使用 psql 中的 \d+ relname 命令显示

postgres=# \d+ foo
                                    Table "public.foo"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 id     | integer |           |          |         | plain   |              | 
Access method: heap
Options: fillfactor=75, log_autovacuum_min_duration=50

或直接检查,例如

postgres=# SELECT unnest(reloptions) FROM pg_class WHERE oid = 'foo'::REGCLASS;
             unnest
--------------------------------
 fillfactor=75
 log_autovacuum_min_duration=50
(2 rows)

或者使用函数 pg_options_to_table()PostgreSQL 9.1 及更高版本)

postgres=# SELECT option_name, option_value
             FROM pg_class c, pg_options_to_table(c.reloptions)
            WHERE c.oid = 'foo'::REGCLASS;
         option_name         | option_value 
-----------------------------+--------------
 log_autovacuum_min_duration | 50
 fillfactor                  | 75
(2 rows)

分类

DDL性能存储参数 (relopt)

反馈

提交任何关于 "存储参数" 的评论、建议或更正 此处