扩展简介

PostgreSQL 扩展的核心概念与 Pigsty 扩展生态

扩展是 PostgreSQL 的灵魂所在。Pigsty 收录了 440+ 个预编译、开箱即用的扩展插件,充分释放 PostgreSQL 的潜能。


扩展是什么

PostgreSQL 扩展(Extension)是一种模块化机制,允许在不修改核心代码的情况下增强数据库功能。 一个扩展通常包含三部分:

  • 控制文件.control):必需,包含扩展元数据
  • SQL 脚本.sql):可选,定义函数、类型、操作符等数据库对象
  • 动态库.so):可选,提供 C 语言实现的高性能功能

扩展可以为 PostgreSQL 添加:新数据类型、索引方法、函数与操作符、外部数据访问、过程语言、性能监控、安全审计等能力。


核心扩展

Pigsty 收录的扩展中,以下是最具代表性的:

扩展说明
PostGIS地理空间数据类型与索引,GIS 事实标准
TimescaleDB时序数据库,支持持续聚合、列存储、自动压缩
PGVector向量数据类型与 HNSW/IVFFlat 索引,AI 应用必备
Citus分布式数据库,水平分片扩展能力
pg_duckdb嵌入 DuckDB 分析引擎,OLAP 加速
ParadeDBElasticSearch 级别的全文搜索能力
Apache AGE图数据库,支持 OpenCypher 查询语言
pg_graphql原生 GraphQL 查询支持

绝大多数扩展可以并存甚至组合使用,产生 1+1 远大于 2 的协同效应。


扩展类别

Pigsty 将扩展划分为 16 个类别:

类别别名说明典型扩展
时序time时序数据处理timescaledb, pg_cron, periods
地理gis地理空间数据postgis, h3, pgrouting
向量rag向量检索与 AIpgvector, vchord, pg_vectorize
搜索fts全文检索pgroonga, zhparser, pg_bigm
分析olapOLAP 与分析pg_duckdb, pg_mooncake, citus
特性feat功能增强age, pg_graphql, hll, rum
语言lang过程语言plpython3u, pljava, plv8
类型type数据类型hstore, ltree, ip4r
工具util实用工具http, pg_net, pgjwt
函数func函数库pg_uuidv7, topn, tdigest
管理admin运维管理pg_repack, pg_squeeze, pgagent
统计stat监控统计pg_stat_statements, pg_qualstats, auto_explain
安全sec安全审计pgaudit, pgsodium, pg_tde
外联fdw外部数据访问postgres_fdw, mysql_fdw, oracle_fdw
兼容sim数据库兼容orafce, babelfish
同步etl数据同步pglogical, wal2json, decoderbufs

使用类别别名可以批量安装整个类别的扩展,例如 pg_extensions: [ pgsql-gis, pgsql-rag ]


预定义扩展集

Pigsty 提供了若干预定义的扩展集(Stack),方便按场景选用:

扩展集包含扩展
gis-stackpostgis, pgrouting, pointcloud, h3, q3c, ogr_fdw
rag-stackpgvector, vchord, pgvectorscale, pg_similarity, pg_tiktoken
fts-stackpgroonga, pg_bigm, zhparser, hunspell
olap-stackpg_duckdb, pg_mooncake, timescaledb, pg_partman, plproxy
feat-stackage, hll, rum, pg_graphql, pg_jsonschema, jsquery
stat-stackpg_show_plans, pg_stat_kcache, pg_qualstats, pg_wait_sampling
supa-stackpg_graphql, pg_jsonschema, wrappers, pgvector, pgsodium, vault

pg_extensions 中直接使用这些名称即可安装整套扩展。


扩展资源


最后修改 2025-12-20: new post on pgsql/arch (19aad69)