PostgreSQL Operations 是一套综合性 PostgreSQL 技能,覆盖从模式设计到生产运维的全过程。
一、用途 该技能用于 PostgreSQL 的日常运维、性能优化与数据库管理,帮助处理连接、索引、查询调优、配置、备份、监控等任务。
二、主要能力
- 连接与连接池:提供标准连接、SSL 连接、libpq 环境变量以及 pgBouncer 默认连接池(端口 6432)的连接方式;包含查看当前连接、活跃连接数等查询。
- 索引类型选择:按查询模式给出索引建议,包括 B-tree(等值、范围、排序)、GIN(数组/JSONB 包含、全文搜索、pg_trgm 模式匹配)、GiST(几何/范围重叠)、BRIN(大表、少不同值、追加写、时间戳)、Hash(仅精确等值)。并给出各索引在适用场景、大小、写入成本上的对照。
- EXPLAIN ANALYZE 工作流:使用 ANALYZE、BUFFERS、FORMAT TEXT 运行,自底向上阅读计划,对比估算行数与实际行数,识别顺序扫描大表、估算偏差、嵌套循环高行数、外部归并排序、缓冲区读取远大于命中、Hash Batch > 1 等风险信号及对应修复方法。
- 工作负载配置:分别给出 OLTP 与 OLAP 场景下 shared_buffers、work_mem、effective_cache_size、random_page_cost、max_parallel_workers_per_gather、checkpoint_completion_target、wal_buffers、maintenance_work_mem 的参考值。
- 常用运维操作:备份与恢复(pg_dump 逻辑备份、pg_restore 恢复、并行备份、pg_basebackup 基础备份用于 PITR);VACUUM 与维护(手动 VACUUM、VACUUM FULL、REINDEX CONCURRENTLY、ANALYZE);关键指标监控(慢查询、表膨胀、锁竞争、缓存命中率,其中缓存命中率应大于 99%)。
- 数据类型速查:JSONB、ARRAY、tsrange、tsvector、uuid、inet/cidr 的适用场景与示例。
- 反模式与注意事项:列出生产环境 SELECT *、索引列上使用函数、NOT IN 含 NULL、批量加载后未 ANALYZE、生产环境 VACUUM FULL、无 ORDER BY 的 LIMIT、大表 Offset 分页、索引过多、单一共享连接池、默认 serializable 隔离级别等问题的原因与修复方式。
- 行级安全(RLS):启用 RLS、按用户隔离策略、管理员全量访问策略、按请求设置上下文。
- 全文搜索:生成 tsvector 列、创建 GIN 索引、带排名的搜索查询。
- LISTEN/NOTIFY:发布者与订阅者示例及 Python、Node 的通知获取方式。
三、使用方式 该技能以参考资料文件形式组织,按需加载对应主题:./references/schema-design.md(表设计、类型、约束、RLS、JSONB 建模)、./references/indexing.md(索引类型、复合/部分/表达式索引、索引维护)、./references/query-tuning.md(读取 EXPLAIN 计划、pg_stat_statements、查询模式优化)、./references/operations.md(备份恢复、WAL/PITR、vacuum 调优、监控、连接池)、./references/replication.md(流式/逻辑复制、故障转移、分区、FDW)、./references/config-tuning.md(postgresql.conf 设置、OLTP/OLAP 配置、扩展安装)。每个参考文件自包含。
四、适用场景 适用于需要 PostgreSQL 模式设计、索引选择、查询性能调优、配置调优、备份恢复、维护、监控、连接池、RLS、全文搜索等任务时使用。
五、限制 本文档未提供具体收费、价格、平台支持、性能效果保证等信息。部分能力需要相应扩展(如 pg_stat_statements、pg_trgm)支持,文档中已标注但未说明具体安装细节(在参考文件中展开)。
相关技能:sql-ops(厂商中立的 SQL 模式,CTE、窗口函数、JOIN)、sqlite-ops(SQLite 专用模式与操作)、python-database-ops(SQLAlchemy ORM 与异步数据库模式)。