如果说mysql有着丰富的插件体系,那么在postgresql中,extension就是对应的实现,而且其生态相比mysql而言,完全不在旗下。本文维护了postgresql重要的三方extension清单(其中部分原来为三方,在新版本中被纳入到标准发行包中)。
插件名 | 主要用途 | 生产是否推荐默认加载 | 加载模式 | 官网 | 备注(副作用及性能影响) |
pg_hint_plan | 优化器提示插件 | 是 |
https://pghintplan.osdn.jp/ https://zhuanlan.zhihu.com/p/335739499 |
||
postgres_fdw | pg之间的数据库链接,用于替代dblink | 是 | shared_preload_libraries | ||
citus | |||||
oracle_fdw | pg到oracle的数据库连接。类似oracle透明网关。 | 是 | 需要安装oracle客户端。 | ||
pg_repack | 内核开发必备 | 是 | |||
cstore_fdw | 基于FDW的列式存储,效果一般。citus出品。 | ||||
imcs |
列式存储引擎。新开发存储引擎值得参考,跟mysql上infinidb的做法类似。函数也是自定义的。易用性较差、专用性较强,跟dolphinedb的做法有些类似。 | 否 | https://pgxn.org/dist/imcs/ | ||
zheap |
非稳定版。侵入性太强,源码改动太多,一般人不敢玩。 官方测试,性能不如heap。 |
||||
zedstore |
非稳定版。侵入性太强,源码改动太多,一般人不敢玩。截止2021年12月,三方测试性能不如heap版本。 | https://github.com/greenplum-db/postgres/tree/zedstore | |||
pgAudit | 否 | ||||
pg_cheat_funcs | 内核开发必备 | 否 | https://github.com/MasaoFujii/pg_cheat_funcs | ||
faultinjector | 内核开发必备 | 否 | https://pgconf.in/conferences/pgconfin2020/program/proposals/101 | ||
pageinspect |
以更低级别查看数据库块里面的内容。用于开发调试目的。 可以查看数据块和索引块,值得开发细细研究源码和每个接口,内核开发必备。 |
否 | https://www.postgresql.org/docs/current/pageinspect.html | ||
pg_auto_failover |
专为pg开发的failover扩展和哨兵。citusdata出品。推荐使用repmgr。 | 是 |
https://github.com/citusdata/pg_auto_failover https://pg-auto-failover.readthedocs.io/en/master/index.html |
||
pglogical |
2ndQuadrant(当前是EDB的一部分)从PostgreSQL 9.4开始引入的逻辑复制扩展。作为其BDR的基础。PostgreSQL 10引入了原生扩展之后,其价值大大下降。 | 否 | |||
pg_stat_kcache |
因为pg默认不支持直接I/O,利用了pagecache,故本扩展统计物理I/O。 | 否 |
工具名 | 用途 | 生产是否推荐默认包含 | 官网 |
pg_bulkload | 数据导入工具。DBA和开发必备 | 是 | https://github.com/ossc-db/pg_bulkload/releases/tag/VERSION3_1_17 |
pg_rewind | 备库初始数据同步软件。DBA必备 | 是 | https://www.postgresql.org/docs/current/app-pgrewind.html |
pg_filedump | 数据文件dump工具,用于异常恢复。DBA必备 | 是 | https://pgpedia.info/p/pg_filedump.html |
pgcenter | pg top命令行工具,类似于innotop | 是 | |
pgpool-II |
亚秒级中间件连接池代理,适用于对延时不高度敏感(比如关心快慢2-3毫秒)、同时数据库连接并发特别多的情况,比如微服务很多的架构。和pgbouncer是竞争关系。 pgpool不推荐,使用pgbouncer。 |
否 | https://www.pgpool.net/pgpool-web/contrib_docs/pgpool-II_for_beginners.pdf |