用途:面向 PostgreSQL 查询性能与存储内部机制,提供可复用的判断、领域约束与成熟工作流,而非临时建议;与 postgresql-fundamentals、postgresql-administration 为配套技能。
主要能力:
- 执行计划解读:用 EXPLAIN (ANALYZE, BUFFERS) 查看估算与实际开销,识别 Seq Scan、Index Scan、Index Only Scan、Bitmap Index Scan、Nested Loop、Hash Join、Merge Join、Sort、Hash 等节点类型,判断 rows 估算与实际行数偏差、shared read 磁盘 I/O 与 loops 累计耗时等信号。
- 索引:B-tree(等值、范围、ORDER BY、LIKE 'prefix%')、复合索引(等值列放前)、覆盖索引 INCLUDE、降序、唯一、部分索引、函数索引,以及 GIN(JSONB、数组、全文检索、pg_trgm)、GiST(几何、IP 范围、范围类型、PostGIS)、BRIN(自然有序的大表);含索引使用统计、缺失索引排查与 REINDEX CONCURRENTLY 在线重建。
- MVCC 与维护:行版本 xmin/xmax 机制、死元组与表膨胀,VACUUM、VACUUM ANALYZE、autovacuum 参数与表级存储参数覆盖、ANALYZE、fill factor。
- 查询级调优:统计目标、random_page_cost、effective_cache_size、pg_hint_plan 提示,以及 pg_stat_statements 查询分析。
- 慢查询日志:auto_explain 配置(log_min_duration、log_analyze、log_buffers)。
使用方式:先读 SKILL.md,再按需加载引用的深度文件;按有序指引、检查清单和决策规则执行,不孤立摘用片段。交付物示例为 Markdown 慢查询诊断与调优报告,如 docs/data/postgres-tuning-2026-04-16.md。关键命令保持原样,如 EXPLAIN (ANALYZE, BUFFERS);SET work_mem = '256MB';CREATE INDEX orders_pending_idx ON orders (created_at) WHERE status = 'pending';REINDEX INDEX CONCURRENTLY orders_customer_idx;VACUUM ANALYZE orders。
适用场景:PostgreSQL 慢查询诊断、索引设计评审、膨胀与 autovacuum 审计、迁移或架构决策、方案与文档产出。任务与 postgresql-performance 无关或可由更具体的配套技能处理时不适用;仅需简单回答时也不适用。
限制与反模式:把示例当复制粘贴真理而不核验适配性、约束与失败模式;默认加载全部参考文件而非渐进式披露。避免仅在 EXPLAIN 下信任成本估算、生产环境执行 VACUUM FULL(应改用 pg_repack)、把最具选择性列放在复合索引末尾、对低基数列无部分条件建索引、忽视估算与实际行数偏差、复杂查询使用默认 4MB work_mem、小 JSONB 表建 GIN 索引。
所需输入:相关项目上下文、约束与具体问题,并确认交付物类型(设计、代码、评审、迁移计划、审计或文档)。输出需明确假设、风险与后续工作。其他细节暂未提供。