跳转到主要内容

默认扩展

Pigsty 默认安装的 PostgreSQL 扩展
Pigsty 默认安装的 PostgreSQL 扩展

Pigsty 在初始化 PostgreSQL 集群时,会默认安装和启用一些核心扩展。


默认安装的扩展

通过 pg_packages 默认安装的扩展:

扩展 说明
pg_repack 在线处理表膨胀,重要的维护工具
wal2json 逻辑解码输出 JSON 格式变更,CDC 场景常用
pgvector 向量数据类型与索引,默认随 pgsql-main 安装

pg_extensions 的默认值为空数组 []。如需安装其他扩展,可以按需声明,例如:

扩展 说明
postgis 地理空间数据库扩展
timescaledb 时序数据库扩展
pgvector 向量数据类型与索引

默认启用的扩展

通过 pg_default_extensions 在所有数据库中默认启用的扩展:

扩展 Schema 说明
pg_stat_statements monitor SQL 语句执行统计
pgstattuple monitor 元组级统计信息
pg_buffercache monitor 缓冲区缓存检查
pageinspect monitor 页面级检查
pg_prewarm monitor 关系预热
pg_visibility monitor 可见性映射检查
pg_freespacemap monitor 空闲空间映射检查
postgres_fdw public PostgreSQL 外部数据包装器
file_fdw public 文件外部数据包装器
btree_gist public B-tree GiST 操作符类
btree_gin public B-tree GIN 操作符类
pg_trgm public 三元组匹配
intagg public 整数聚合器
intarray public 整数数组函数
pg_repack repack 在线重组表

这些扩展提供基础的监控、运维和功能增强能力。


默认预加载的扩展

通过 pg_libs 默认预加载到 shared_preload_libraries 的扩展:

扩展 说明
pg_stat_statements 跟踪所有 SQL 语句的执行统计
auto_explain 自动记录慢查询的执行计划

这两个扩展提供基本的可观测性,强烈建议保留。


自定义默认扩展

可以通过修改配置参数来自定义默认安装和启用的扩展:

all:
  vars:
    # 修改默认安装的扩展包
    pg_packages:
      - pgsql-main pgsql-common
      - pg_repack_$v* wal2json_$v*

    # 修改默认安装的扩展
    pg_extensions: [ postgis, timescaledb, pgvector ]

    # 修改默认预加载的扩展
    pg_libs: 'timescaledb, pg_stat_statements, auto_explain'

    # 修改默认启用的扩展
    pg_default_extensions:
      - { name: pg_stat_statements, schema: monitor }
      - { name: pg_repack }
      # ... 添加更多

详细的扩展使用方法请参阅: