Skip to content

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-patterns Skill,或通过 database-reviewer Agent 自动触发。

Step 2:编写 SQL 或设计 Schema 时查阅速查表

  • 索引模式速查
    例如,你要优化 WHERE col = value 查询,Skill 会建议使用默认 B-tree 索引:

    sql
    CREATE INDEX idx ON t (col);

    对于 jsonb 字段检索,Skill 推荐 GIN 索引:

    sql
    CREATE INDEX idx ON t USING gin (col);
  • 数据类型选型
    Skill 会提示 ID 应优先用 bigint,时间戳用 timestamptz,金额用 numeric(10,2),避免常见类型误用:

    用途推荐类型避免
    IDsbigintint, UUID
    字符串textvarchar(255)
    时间戳timestamptztimestamp
    金额numeric(10,2)float
  • 索引顺序与覆盖索引
    设计复合索引时,Skill 会建议“等值字段在前,范围字段在后”:

    sql
    CREATE INDEX idx ON orders (status, created_at);
    -- 支持 WHERE status = 'pending' AND created_at > '2024-01-01'

    如果需要避免回表,Skill 推荐覆盖索引:

    sql
    CREATE INDEX idx ON users (email) INCLUDE (name, created_at);
  • 高效分页与 UPSERT
    Skill 推荐游标分页而非 OFFSET:

    sql
    SELECT * FROM products WHERE id > $last_id ORDER BY id LIMIT 20;

    UPSERT 推荐标准写法:

    sql
    INSERT 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 片段,快速找出所有未加索引的外键:

    sql
    SELECT 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 权限,防止未授权访问:

    sql
    REVOKE ALL ON SCHEMA public FROM public;
  • 连接数与内存、超时参数
    Skill 提供生产环境推荐配置:

    sql
    ALTER 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 方便后续分析:

    sql
    CREATE 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 在后:

sql
CREATE INDEX idx_orders_status_created_at ON orders (status, created_at);

如需只索引活跃订单,可用 partial index:

sql
CREATE 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 协作流。