Appearance
Everything Claude Code 的 postgres-patterns Skill 是一套专为 PostgreSQL 设计的数据库模式速查与实践工具,覆盖查询优化、Schema 设计、索引策略和 Supabase 安全配置。它通过结构化的索引建议、数据类型选型、反模式检测和配置模板,帮助开发者在 AI 编程助手(如 Claude Code)环境下,快速落地生产级数据库最佳实践,显著提升开发效率与系统安全性。
Everything Claude Code PostgreSQL Patterns Skill:查询优化、Schema 设计、索引策略与 Supabase 安全实践
在现代 AI 辅助编程环境中,数据库性能与安全已成为后端开发的核心挑战。Everything Claude Code 的 postgres-patterns Skill,正是为了解决开发者在 PostgreSQL 查询优化、Schema 设计、索引策略和 Supabase 安全实践中遇到的高频难题而生。它不仅提供一站式的最佳实践速查表,还能与 database-reviewer Agent 等工具协同,实现自动化的数据库审查和性能提升。
1. postgres-patterns Skill 能解决什么问题?
在没有该 Skill 的情况下,开发者常常需要:
- 手动查阅零散的 PostgreSQL 文档和社区帖子,难以系统性掌握索引、数据类型、RLS(行级安全)等最佳实践。
- 反复踩到常见反模式(如误用数据类型、遗漏索引、低效分页等),导致查询慢、存储膨胀或安全隐患。
- 配置 Supabase 或原生 PostgreSQL 时,容易忽略安全默认值和性能参数,埋下后患。
- 缺乏一键式的反模式检测 SQL,无法高效定位表膨胀、未索引外键、慢查询等问题。
而通过激活 postgres-patterns Skill,你可以:
- 在写 SQL、设计 Schema、优化查询或配置安全策略时,随时获得结构化、权威的实践建议。
- 快速查找各种查询场景下的索引类型、数据类型选型、RLS 策略写法和高效分页模式。
- 一键获取反模式检测 SQL,自动发现数据库中的性能或安全隐患。
- 直接套用 Supabase 推荐的安全配置模板,保障生产环境安全。
2. 什么时候激活 postgres-patterns Skill?
推荐在以下场景自动或手动激活:
- 编写或重构 SQL 查询、视图、存储过程时,追求高性能和可维护性。
- 设计或调整数据库 Schema,尤其是确定字段类型、主键、外键和索引顺序时。
- 遇到慢查询、表膨胀、连接数过多等数据库性能瓶颈时。
- 实现 Row Level Security(RLS)、连接池、超时和安全默认值等数据库安全策略时。
- 配合 database-reviewer Agent 做全库审查,或与 backend-patterns Skill 联动优化 API 层的数据访问。
3. 实际项目中如何用好 postgres-patterns Skill?(Step by Step)
Step 1:在 AI 编程助手中启用 postgres-patterns Skill
- 确保 Everything Claude Code 已按需安装(可参考 安装配置指南)。
- 在你的项目配置或 AI 会话中启用
postgres-patternsSkill,或通过database-reviewerAgent 自动触发。
Step 2:编写 SQL 或设计 Schema 时查阅速查表
索引模式速查
例如,你要优化WHERE col = value查询,Skill 会建议使用默认 B-tree 索引:sqlCREATE INDEX idx ON t (col);对于 jsonb 字段检索,Skill 推荐 GIN 索引:
sqlCREATE INDEX idx ON t USING gin (col);数据类型选型
Skill 会提示 ID 应优先用bigint,时间戳用timestamptz,金额用numeric(10,2),避免常见类型误用:用途 推荐类型 避免 IDs bigint int, UUID 字符串 text varchar(255) 时间戳 timestamptz timestamp 金额 numeric(10,2) float 索引顺序与覆盖索引
设计复合索引时,Skill 会建议“等值字段在前,范围字段在后”:sqlCREATE INDEX idx ON orders (status, created_at); -- 支持 WHERE status = 'pending' AND created_at > '2024-01-01'如果需要避免回表,Skill 推荐覆盖索引:
sqlCREATE INDEX idx ON users (email) INCLUDE (name, created_at);高效分页与 UPSERT
Skill 推荐游标分页而非 OFFSET:sqlSELECT * FROM products WHERE id > $last_id ORDER BY id LIMIT 20;UPSERT 推荐标准写法:
sqlINSERT INTO settings (user_id, key, value) VALUES (123, 'theme', 'dark') ON CONFLICT (user_id, key) DO UPDATE SET value = EXCLUDED.value;
Step 3:检测反模式和性能隐患
一键检测未索引外键
Skill 提供 SQL 片段,快速找出所有未加索引的外键:sqlSELECT conrelid::regclass, a.attname FROM pg_constraint c JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ANY(c.conkey) WHERE c.contype = 'f' AND NOT EXISTS ( SELECT 1 FROM pg_index i WHERE i.indrelid = c.conrelid AND a.attnum = ANY(i.indkey) );慢查询与表膨胀检测
Skill 提供标准 SQL 检查慢查询和表膨胀:sql-- 查慢查询 SELECT query, mean_exec_time, calls FROM pg_stat_statements WHERE mean_exec_time > 100 ORDER BY mean_exec_time DESC; -- 查表膨胀 SELECT relname, n_dead_tup, last_vacuum FROM pg_stat_user_tables WHERE n_dead_tup > 1000 ORDER BY n_dead_tup DESC;
Step 4:安全与性能配置模板直接套用
安全默认值
Skill 推荐撤销 public schema 权限,防止未授权访问:sqlREVOKE ALL ON SCHEMA public FROM public;连接数与内存、超时参数
Skill 提供生产环境推荐配置:sqlALTER SYSTEM SET max_connections = 100; ALTER SYSTEM SET work_mem = '8MB'; ALTER SYSTEM SET idle_in_transaction_session_timeout = '30s'; ALTER SYSTEM SET statement_timeout = '30s';监控与扩展
Skill 建议启用 pg_stat_statements 方便后续分析:sqlCREATE EXTENSION IF NOT EXISTS pg_stat_statements; SELECT pg_reload_conf();
Step 5:与其他 Agent/Skill 协作
- 与 database-reviewer Agent 协作
该 Agent 会自动调用 postgres-patterns Skill,对数据库结构、索引和安全策略做全局审查,输出改进建议和风险报告。 - 与 clickhouse-io Skill 协作
混合分析场景下,Skill 可作为 PostgreSQL 与 ClickHouse 数据流设计的桥梁。 - 与 backend-patterns Skill 联动
优化 API 层的数据访问和分页策略,确保前后端协同高效。
4. 输出示例
假设你在 Claude Code 会话中输入:“优化下我的订单表查询,status+created_at 组合查询很慢”,Skill 可能输出:
建议为 orders(status, created_at) 建复合索引,等值字段 status 在前,范围字段 created_at 在后:
sqlCREATE INDEX idx_orders_status_created_at ON orders (status, created_at);如需只索引活跃订单,可用 partial index:
sqlCREATE INDEX idx_orders_active ON orders (status, created_at) WHERE deleted_at IS NULL;
5. 常见问题与注意事项
FAQ
Q: postgres-patterns Skill 和 database-reviewer Agent 有什么区别?
A: Skill 提供速查表和结构化建议,适合即时查阅;Agent 负责全库自动审查和深度分析,通常会调用该 Skill 作为知识库。
Q: Skill 推荐的索引和数据类型适用于所有场景吗?
A: 推荐方案基于主流生产经验,绝大多数业务场景适用,但极端高并发或特殊数据分布时仍需结合实际测试和分析。
Q: 如何确保 Supabase 环境下的安全配置生效?
A: 按 Skill 提供的 SQL 模板配置后,建议在 staging 环境先验证权限和超时参数,确保无误再推广到生产。
通过 postgres-patterns Skill,开发者可以在 AI 编程助手环境下,系统性掌握 PostgreSQL 的核心模式和反模式,极大提升数据库开发、运维与安全治理的效率。如需进一步自动化和深度分析,建议结合 Everything Claude Code 完全指南 和 高级技巧 配置多 Agent 协作流。