Skip to content

Everything Claude Code Database Reviewer Agent 是专为 PostgreSQL 和 Supabase 打造的数据库专家代理,聚焦查询优化、Schema 设计、安全加固与性能诊断。它能自动识别 SQL 性能瓶颈、索引缺失、RLS 策略风险等问题,结合 Supabase 最佳实践,保障数据库代码高效、安全、可维护。相比直接询问 Claude,专用代理能系统性执行多步审查与自动化检测,极大提升数据库开发效率与安全性。

Everything Claude Code Database Reviewer Agent:PostgreSQL 查询优化、Schema 安全与 Supabase 最佳实践

在现代 AI 辅助编程工作流中,数据库层的性能与安全往往决定了应用的可扩展性和稳定性。Everything Claude Code Database Reviewer Agent(下称 database-reviewer)是专为 PostgreSQL/Supabase 场景设计的专业代理,能自动化审查 SQL 查询、Schema 变更、权限策略与连接池配置,帮助开发团队系统性规避常见数据库陷阱。

相比直接让 Claude 回答数据库相关问题,database-reviewer 具备领域专精的多步诊断能力,能结合 Supabase 社区最佳实践、自动执行性能分析、索引检查与安全审计,确保每一次数据库操作都符合生产级标准。本文将详细介绍其核心用途、能力边界、激活方式、与其他 Agent 的协作模式,并通过实际对话示例展示如何高效利用这一代理。

1. 适用场景与核心用途

database-reviewer 适用于以下关键场景,建议主动调用,而非仅在遇到问题时被动求助:

  • SQL 查询优化:分析复杂查询的执行计划,自动识别全表扫描、N+1 查询、索引缺失等性能瓶颈。
  • Schema 设计与迁移评审:审查新建或变更的表结构,检查主外键、数据类型、约束、命名规范等。
  • 安全与权限加固:自动检测 RLS(行级安全)配置、权限授予、public schema 权限等安全隐患。
  • Supabase 最佳实践落地:结合 Supabase postgres-best-practices,确保多租户、软删除、队列等场景下的最佳实现。
  • 数据库性能监控与连接管理:建议合理的连接池、事务、并发与监控配置,防止死锁和连接泄漏。

必须用 database-reviewer 的典型场景:

  • 设计或修改数据库 Schema(尤其是多租户、权限敏感表)
  • 编写或优化复杂 SQL 查询
  • 设计 RLS 策略、权限模型
  • 处理数据库性能异常、慢查询、死锁等问题
  • 进行 Supabase 项目迁移、上线前安全审查

2. 具体能力与能力边界

能做什么?

database-reviewer 具备如下专业能力:

  • 自动化 SQL 性能分析
    能通过 EXPLAIN ANALYZE 检查查询执行计划,定位 Seq Scan、索引使用、N+1 查询等问题,并给出索引优化建议。

  • Schema 设计与命名规范检查
    检查主键/外键是否索引、字段类型是否合理(如 ID 必须 bigint,时间戳用 timestamptz)、约束是否齐全、命名是否符合 snake_case。

  • RLS 与权限模型审计
    自动检测 RLS 是否开启、策略是否安全、是否存在 GRANT ALL、public schema 权限是否被收回等。

  • Supabase 场景最佳实践
    包括软删除(deleted_at + partial index)、队列(SKIP LOCKED)、游标分页(WHERE id > $last)、批量插入、短事务等。

  • 连接池与并发配置建议
    针对连接数、事务长度、锁策略、死锁预防等给出具体建议。

  • 输出详细审查清单
    自动生成 checklist,覆盖索引、数据类型、RLS、事务、N+1、EXPLAIN 等关键项。

不能做什么?

  • 无法直接执行数据库操作,仅能审查 SQL/DDL/DML 代码与配置
  • 不负责代码以外的业务逻辑判断(如表设计是否满足业务需求)
  • 不替代安全审计员,但能自动发现绝大部分常见安全隐患
  • 不生成迁移脚本,但可评审已生成的迁移内容

如需更广泛的代码质量/安全审查,可结合 code-reviewersecurity-reviewer 等其他 Agent 协同使用。

3. 触发方式:自动激活 vs 手动调用

  • 自动激活场景
    在 Everything Claude Code 的集成环境下,凡是检测到你正在编辑 SQL 文件、数据库迁移脚本、Schema 变更、Supabase 配置时,database-reviewer 会自动加入审查流程。
    例如:提交包含 *.sqlmigrations/schema.prisma(Postgres 相关)等文件的 PR 时,Agent 会自动分析并出具报告。

  • 手动调用场景
    你可以通过命令或面板主动选择 database-reviewer,对指定的 SQL 片段、Schema 文件、RLS 策略等发起专项审查。
    适合场景:

    • 只想单独检查某条慢 SQL
    • 评估第三方迁移脚本安全性
    • 临时验证某个 RLS policy 是否合规

4. 与其他 Agent 的协作模式

database-reviewer 通常与以下 Agent 组合使用,实现端到端的数据库开发保障:

  • 与 code-reviewer 协同:先用 database-reviewer 专注数据库层,再用 code-reviewer 审查应用代码整体质量。
  • 与 security-reviewer 串联:database-reviewer 发现安全隐患后,可自动触发 security-reviewer 进行更深入的安全扫描与修复建议。
  • 与 tdd-guide 配合:Schema 变更或新功能开发时,先用 tdd-guide 生成测试用例,再用 database-reviewer 保障数据库层设计合理。
  • 与 hooks/自动化流程结合:可通过 Hooks 系统 在 PreToolUse/PostToolUse 阶段自动插入数据库审查节点,保障每次变更都被充分检查。

5. 实际使用示例:完整对话流程

场景:开发者提交一条复杂 SQL 查询用于报表分析,担心性能问题和安全隐患。

对话示例:

用户
请帮我审查这条 SQL 查询,看看是否有性能或安全问题:

sql
SELECT * FROM orders WHERE user_id = 123 AND created_at > '2024-06-01';

database-reviewer Agent

  1. 性能分析
  • 检查到 WHERE 子句涉及 user_idcreated_at,请确认这两个字段均已建立索引,避免全表扫描。
  • 建议运行 EXPLAIN ANALYZE,如出现 Seq Scan,需补充索引。
  • SELECT * 不推荐用于生产,建议显式列出字段,减少不必要的数据加载。
  1. Schema 检查
  • orders 表的主键应为 bigint 类型,时间字段建议使用 timestamptz
  1. 安全审计
  • 如为多租户场景,建议启用 RLS,确保 user_id 过滤逻辑在 RLS policy 中实现。
  1. Supabase 最佳实践
  • 若采用软删除,建议 WHERE 子句加 deleted_at IS NULL 并为其建立 partial index。

Checklist

  • [ ] WHERE/JOIN 字段已索引
  • [ ] 避免 SELECT *
  • [ ] RLS 已启用
  • [ ] deleted_at IS NULL 软删除已覆盖

如需自动生成优化后的 SQL 或索引语句,请补充表结构信息。

6. 操作步骤与最佳实践

  1. 触发 database-reviewer

    • 编辑 SQL/Schema 文件或 PR 时自动激活
    • 也可在 Claude Code 面板手动选择 database-reviewer,粘贴 SQL/DDL 内容发起审查
  2. 审查输出解读

    • Agent 会输出性能分析、Schema 检查、安全审计、Supabase 建议和 checklist
    • 若发现问题,会给出具体优化建议(如索引语句、字段类型调整、RLS policy 示例等)
  3. 与其他 Agent 串联

    • 针对安全问题,建议立即用 security-reviewer 进一步扫描
    • 代码层面问题交由 code-reviewer 处理
  4. 持续集成推荐

    • 在 CI/CD 流程中集成 database-reviewer,可实现数据库变更的自动化审查与阻断
  5. 参考进阶指南

FAQ

Q: 为什么要用 database-reviewer 代理而不是直接让 Claude 回答数据库问题?
A: database-reviewer 内置多步诊断、自动 checklist、Supabase 最佳实践和安全审计,能系统性发现隐患并输出结构化建议,而直接问 Claude 往往只给出片段性答案,遗漏关键细节。

Q: database-reviewer 支持哪些数据库场景?
A: 主要聚焦 PostgreSQL 及 Supabase,覆盖查询优化、Schema 设计、RLS 策略、连接管理、并发与性能监控等,适合绝大多数生产级 Postgres/Supabase 项目。

Q: 自动激活和手动调用有何区别?
A: 自动激活适合常规开发流程(如 PR、Schema 变更),手动调用适合专项审查或临时验证,二者可灵活结合,确保关键环节不遗漏数据库安全与性能检查。


通过 database-reviewer Agent,你可以让数据库开发和运维环节实现自动化、结构化的高标准审查,为 AI 辅助编程体系提供坚实的数据基础。