前言¶
慢查詢、缺索引、連接數打滿,這類問題往往要在文檔、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 爲主題,把常見優化工作拆成可引用的片段與清單,主要包括:
- 索引策略:B-tree、複合索引列順序、部分索引、覆蓋索引(
INCLUDE)、GIN(JSONB)、GiST(全文)、CREATE INDEX CONCURRENTLY等示例 SQL。 - 讀懂執行計劃:
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)示例,並說明應關注的計劃節點(如Seq Scan、Nested Loop、Sort、緩衝區 hit/read)。 - 表分區:按
RANGE分區建表與子分區示例;建議在按分區鍵過濾且行數超過約 1000 萬 時考慮分區。 - JSONB: containment(
@>)、嵌套字段查詢與更新、jsonb_array_elements_text等操作示例。 - 連接池:
pgbouncer.ini片段(transaction 池模式、連接數等),並區分 transaction 級與 session 級池的適用場景。 - 常用診斷 SQL:基於
pg_stat_statements查慢查詢、基於pg_stat_user_indexes找未使用索引。 - 反模式與檢查清單:例如盲目建索引、不寫
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