Postgres優化:把 PostgreSQL 調優知識裝進 Agent Skill

前言

慢查詢、缺索引、連接數打滿,這類問題往往要在文檔、EXPLAIN 輸出和運維經驗之間來回翻。把 Agent 拉進排查時,如果缺少一套穩定的 PostgreSQL 優化指引,回答容易散、SQL 示例也不一致。

下面介紹 SkillHub 上的 Postgres優化(座標 @user_3c6cb52e/postgres-optimization-sh-g3z1h6,版本 1.0.0)。它以通用 SKILL.md 形式發佈,安裝後 Agent 可按技能內整理的索引、執行計劃、分區與連接池等要點協助你完成 Postgres 相關任務。

這是什麼

Postgres優化 是面向 AI Agent 的 PostgreSQL 優化專用技能,官方簡介爲:幫助 Agent 高效完成相關任務。

  • 來源:SkillHub community 技能,發佈者 user_3c6cb52e
  • 分類:dev-programming(技能元數據中還標註「開發者工具」)
  • 許可:MIT(見技能包內 SKILL.md 頭部)
  • 依賴:標籤 requires_api_key=false,無需額外 API Key
  • 適配框架(技能元數據列出):Claude Code、Codex、Hermes Agent、OpenClaw、QClaw、WorkBuddy 等;Cursor 等客戶端可通過 SkillHub CLI 安裝到各自 skills 目錄使用

技能主頁與 API 入口:

  • 頁面:https://www.skillhub.cn/skills/user_3c6cb52e/postgres-optimization-sh-g3z1h6
  • API:https://api.skillhub.cn/user_3c6cb52e/postgres-optimization-sh-g3z1h6

截至資料抓取時,SkillHub 顯示評分 100000、下載 1460 次(安裝計數爲 0,以頁面統計爲準)。

核心功能

技能正文以 PostgreSQL Optimization 爲主題,把常見優化工作拆成可引用的片段與清單,主要包括:

  1. 索引策略:B-tree、複合索引列順序、部分索引、覆蓋索引(INCLUDE)、GIN(JSONB)、GiST(全文)、CREATE INDEX CONCURRENTLY 等示例 SQL。
  2. 讀懂執行計劃:EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) 示例,並說明應關注的計劃節點(如 Seq Scan、Nested Loop、Sort、緩衝區 hit/read)。
  3. 表分區:按 RANGE 分區建表與子分區示例;建議在按分區鍵過濾且行數超過約 1000 萬 時考慮分區。
  4. JSONB: containment(@>)、嵌套字段查詢與更新、jsonb_array_elements_text 等操作示例。
  5. 連接池:pgbouncer.ini 片段(transaction 池模式、連接數等),並區分 transaction 級與 session 級池的適用場景。
  6. 常用診斷 SQL:基於 pg_stat_statements 查慢查詢、基於 pg_stat_user_indexes 找未使用索引。
  7. 反模式與檢查清單:例如盲目建索引、不寫 EXPLAIN ANALYZE、高峯跑 VACUUM FULL 等;附帶優化項勾選清單(pg_stat_statements、複合索引順序、PgBouncer/pgcat 等)。

以上能力均來自技能包內 SKILL.md,不包含獨立可執行腳本;Agent 主要是在對話與改 SQL/配置時對齊這些約定與示例。

安裝與啓用

1、安裝 SkillHub CLI

先確認本機是否已有 CLI:

command -v skillhub && skillhub --version

若未安裝,可按 SkillHub 官方安裝文檔執行完整安裝(CLI + 默認 Skill):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

僅安裝 CLI 時:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only

2、安裝 Postgres優化 技能

安裝時必須用 --dir 指向當前 Agent 的 skills 目錄,否則默認落在 ./skills/,Agent 可能無法加載。

skillhub install '@user_3c6cb52e/postgres-optimization-sh-g3z1h6' --dir <skills 目錄>

常見客戶端 skills 路徑(摘自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或項目下的 .agents/skills/

也可將官方頁面給出的提示詞發給 Agent,讓其按 https://skillhub.cn/install/skillhub.md 完成安裝:

請根據 https://skillhub.cn/install/skillhub.md,安裝 `@user_3c6cb52e/postgres-optimization-sh-g3z1h6`。

安裝完成後,按你所用客戶端的要求重啓或刷新 Agent,使技能生效。

典型用法

技能不提供單獨 CLI;典型流程是:安裝技能 → 在對話中描述庫表與慢查詢現象 → 讓 Agent 按技能中的模式給出索引、計劃解讀或配置建議。

下面兩段來自技能正文,可直接作爲與 Agent 對齊的復現起點。

用 EXPLAIN 分析關鍵查詢(Agent 可據此講解計劃裏是否出現全表掃描、排序是否未走索引等):

EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT o.id, o.total, u.name
FROM orders o
JOIN users u ON o.user_id = u.id
WHERE o.status = 'shipped'
  AND o.created_at > NOW() - INTERVAL '30 days'
ORDER BY o.created_at DESC
LIMIT 20;

爲高頻過濾條件建部分索引:

CREATE INDEX idx_orders_pending ON orders (created_at)
  WHERE status = 'pending';

你還可以讓 Agent 對照技能末尾的 Checklist(pg_stat_statements、複合索引列順序、連接池、分區與無用索引等)逐項覈對當前環境。

適用場景與注意

適合誰

  • 日常用 PostgreSQL,需要 Agent 在索引設計、EXPLAIN 解讀、JSONB 查詢、PgBouncer 配置等方面給出與文檔一致的建議。
  • 已在 Cursor、Claude Code、Codex 或 OpenClaw 系客戶端中使用 Skills,希望把 Postgres 優化知識固化成可複用提示詞包。

限制與注意

  • 技能內容是知識與 SQL/配置模板,不會自動連接你的數據庫;生產變更仍需你在目標環境驗證,並在低峯期執行 CREATE INDEX CONCURRENTLY 等操作。
  • 元數據中的 homepage / repository 指向 GitHub 用戶頁,與 SkillHub 包版本 1.0.0 的維護關係以 SkillHub 發佈爲準;升級可用 skillhub 在對應 skills 目錄內更新(遵循 https://skillhub.cn/install/skillhub.md 的說明)。
  • 分區、池化參數等需結合實際數據量與訪問模式;技能內給出的閾值(例如約 1000 萬行考慮分區)是經驗性提示,不是硬性規則。

結尾

Postgres優化 把索引、執行計劃、分區、JSONB、連接池和診斷 SQL 收進一份 SKILL.md,讓 Agent 在 Postgres 相關任務上有統一參照。若你使用 SkillHub 管理技能,可從官方頁面安裝:

https://www.skillhub.cn/skills/user_3c6cb52e/postgres-optimization-sh-g3z1h6

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜