mcpField
P
postgresql

postgresql

github.com/partme-ai数据与数据库71885 次安装4 周前更新
代码仓库

关于 postgresql

postgresql 是面向 PostgreSQL 开发者和管理员的技能指南,覆盖 SQL 编写、数据库设计、性能分析与运维任务,并提供 PostgreSQL 特性和管理实践的参考。

主要功能

  1. 01表结构与索引设计
  2. 02SQL 查询编写与优化
  3. 03JSONB、全文搜索和 pgvector
  4. 04EXPLAIN ANALYZE 性能分析
  5. 05用户权限、备份与复制

适用场景

  1. 01设计表、约束、触发器和函数
  2. 02优化连接、CTE 与聚合查询
  3. 03分析慢查询并调整索引
  4. 04配置角色权限及备份流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/partme-ai/full-stack-skills --skill postgresql

安装后在 Claude Code 中输入/postgresql确认已加载。

附带文件LICENSE.txt

详细介绍

适用场景

在用户需要以下操作时使用此技能:

  • 设计表、索引、约束、触发器或 PL/pgSQL 函数
  • 编写或优化 SQL 查询(联接、CTE、窗口函数、聚合)
  • 使用 PostgreSQL 特有功能(JSONB、全文搜索、数组类型、pgvector)
  • 使用 psql 管理用户、角色和权限
  • 配置备份(pg_dump)、复制或性能调优(EXPLAIN ANALYZE)

如何使用此技能

工作流
  1. 确定任务 - 架构设计、查询编写、优化或管理
  2. 编写 SQL - 使用下方的模式和示例
  3. 分析性能 - 对较慢的查询运行 EXPLAIN ANALYZE
  4. 应用最佳实践 - 根据需要采用索引策略、VACUUM、分区
快速入门示例:带索引的表和查询
-- Create a table with constraints
CREATE TABLE orders (
    id          BIGSERIAL PRIMARY KEY,
    customer_id BIGINT NOT NULL REFERENCES customers(id),
    status      TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending','shipped','delivered')),
    total       NUMERIC(10,2) NOT NULL,
    metadata    JSONB DEFAULT '{}',
    created_at  TIMESTAMPTZ NOT NULL DEFAULT now()
);

-- Create an index for common queries
CREATE INDEX idx_orders_customer_status ON orders (customer_id, status);

-- Query with CTE and window function
WITH monthly_totals AS (
    SELECT customer_id,
           date_trunc('month', created_at) AS month,
           SUM(total) AS month_total
    FROM orders
    WHERE status = 'delivered'
    GROUP BY customer_id, date_trunc('month', created_at)
)
SELECT customer_id, month, month_total,
       LAG(month_total) OVER (PARTITION BY customer_id ORDER BY month) AS prev_month
FROM monthly_totals;
性能分析
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT * FROM orders WHERE customer_id = 42 AND status = 'pending';

最佳实践

  1. 合理创建索引 - 为 WHERE/JOIN 列创建索引;对经过筛选的查询使用部分索引
  2. 定期运行 VACUUM - 防止表膨胀;为写入频繁的表配置 autovacuum 阈值
  3. 对大型表分区 - 对超过 100M 行的表,按时间戳列进行范围分区
  4. 使用 ROLE/GRANT - 授予最小权限;应用程序连接切勿使用超级用户
  5. 备份并验证 - 使用 pg_dump 或 WAL 归档;定期测试恢复流程

关键词

postgresql, postgres, psql, SQL, JSONB, 全文搜索, CTE, 窗口函数, 关系型数据库, 索引, 复制, EXPLAIN ANALYZE, pg_dump, 分区

评论

支持 Markdown