关于 postgresql
postgresql 是面向 PostgreSQL 开发者和管理员的技能指南,覆盖 SQL 编写、数据库设计、性能分析与运维任务,并提供 PostgreSQL 特性和管理实践的参考。
主要功能
- 01表结构与索引设计
- 02SQL 查询编写与优化
- 03JSONB、全文搜索和 pgvector
- 04EXPLAIN ANALYZE 性能分析
- 05用户权限、备份与复制
适用场景
- 01设计表、约束、触发器和函数
- 02优化连接、CTE 与聚合查询
- 03分析慢查询并调整索引
- 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)
如何使用此技能
工作流
- 确定任务 - 架构设计、查询编写、优化或管理
- 编写 SQL - 使用下方的模式和示例
- 分析性能 - 对较慢的查询运行 EXPLAIN ANALYZE
- 应用最佳实践 - 根据需要采用索引策略、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';
最佳实践
- 合理创建索引 - 为 WHERE/JOIN 列创建索引;对经过筛选的查询使用部分索引
- 定期运行 VACUUM - 防止表膨胀;为写入频繁的表配置 autovacuum 阈值
- 对大型表分区 - 对超过 100M 行的表,按时间戳列进行范围分区
- 使用 ROLE/GRANT - 授予最小权限;应用程序连接切勿使用超级用户
- 备份并验证 - 使用
pg_dump或 WAL 归档;定期测试恢复流程
关键词
postgresql, postgres, psql, SQL, JSONB, 全文搜索, CTE, 窗口函数, 关系型数据库, 索引, 复制, EXPLAIN ANALYZE, pg_dump, 分区
评论
支持 Markdown