Appearance
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-reviewer、security-reviewer 等其他 Agent 协同使用。
3. 触发方式:自动激活 vs 手动调用
自动激活场景
在 Everything Claude Code 的集成环境下,凡是检测到你正在编辑 SQL 文件、数据库迁移脚本、Schema 变更、Supabase 配置时,database-reviewer 会自动加入审查流程。
例如:提交包含*.sql、migrations/、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 查询,看看是否有性能或安全问题:sqlSELECT * FROM orders WHERE user_id = 123 AND created_at > '2024-06-01';
database-reviewer Agent:
- 性能分析
- 检查到 WHERE 子句涉及
user_id和created_at,请确认这两个字段均已建立索引,避免全表扫描。- 建议运行
EXPLAIN ANALYZE,如出现 Seq Scan,需补充索引。SELECT *不推荐用于生产,建议显式列出字段,减少不必要的数据加载。
- Schema 检查
orders表的主键应为bigint类型,时间字段建议使用timestamptz。
- 安全审计
- 如为多租户场景,建议启用 RLS,确保
user_id过滤逻辑在 RLS policy 中实现。
- Supabase 最佳实践
- 若采用软删除,建议 WHERE 子句加
deleted_at IS NULL并为其建立 partial index。Checklist
- [ ] WHERE/JOIN 字段已索引
- [ ] 避免 SELECT *
- [ ] RLS 已启用
- [ ] deleted_at IS NULL 软删除已覆盖
如需自动生成优化后的 SQL 或索引语句,请补充表结构信息。
6. 操作步骤与最佳实践
触发 database-reviewer
- 编辑 SQL/Schema 文件或 PR 时自动激活
- 也可在 Claude Code 面板手动选择 database-reviewer,粘贴 SQL/DDL 内容发起审查
审查输出解读
- Agent 会输出性能分析、Schema 检查、安全审计、Supabase 建议和 checklist
- 若发现问题,会给出具体优化建议(如索引语句、字段类型调整、RLS policy 示例等)
与其他 Agent 串联
- 针对安全问题,建议立即用 security-reviewer 进一步扫描
- 代码层面问题交由 code-reviewer 处理
持续集成推荐
- 在 CI/CD 流程中集成 database-reviewer,可实现数据库变更的自动化审查与阻断
参考进阶指南
- 深入了解数据库模式、迁移与优化,可查阅 PostgreSQL Patterns Skill、Database Migrations Skill
- 了解 Agent 体系与自动化配置,参考 Everything Claude Code 完全指南
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 辅助编程体系提供坚实的数据基础。