| name | db-mysql-standards |
| description | 阿里巴巴Java开发手册 — 数据库规约审查与指导。当用户涉及以下任何场景时触发:
- 数据库表设计、字段命名、类型选择
- 索引设计、优化SQL性能
- SQL语句审查(禁止select *、大事务拆分等)
- ORM映射配置审查(MyBatis、Hibernate等)
- 分库分表策略
- 数据库性能优化
- 用户提到"数据库设计"、"表结构"、"索引"、"SQL优化"、"ORM"等关键词
此技能以MySQL为例,但原则适用于所有关系型数据库(PostgreSQL、Oracle等)。
|
数据库规约技能
作用
本技能基于《阿里巴巴Java开发手册》的MySQL数据库章节,为开发者提供数据库设计、索引优化、SQL规范和ORM映射的指导。
涵盖以下领域:
| 规约领域 | 说明 |
|---|
| 建表规约 | 表命名、字段类型、必备字段、分库分表 |
| 索引规约 | 唯一索引、join限制、索引长度 |
| SQL语句 | 查询优化、大事务、批量操作 |
| ORM映射 | 结果映射、缓存、分页 |
使用方法
- 表结构审查 — 输入:建表 SQL 或表结构设计文档;执行:读取
references/table-design.md 后逐项检查命名、字段类型、索引、必备字段;输出:按【强制】【推荐】【参考】分级的问题清单 + 修正SQL
- SQL优化 — 输入:待优化的查询 SQL 或慢查询日志;执行:读取
references/sql-rules.md 和 references/index-rules.md 后分析;输出:优化后的 SQL + 索引建议
- ORM配置审查 — 输入:MyBatis/Hibernate 映射文件或配置类;执行:读取
references/orm-rules.md 后检查映射、缓存、分页配置;输出:配置修正建议 + 正例参考
- 按需加载规约:根据审查目标选择对应的规约文件读取,不要一次性加载所有文件
数据库审查检查点
执行数据库规约审查时,以下场景需先向用户确认,再执行后续操作:
| 场景 | 检查内容 |
|---|
| 建议修改表结构 | 涉及已有表的字段变更、索引调整时,确认数据量和业务影响窗口 |
| 建议重写 SQL | 确认 SQL 的执行频率和当前性能基线,评估重写后的回归测试范围 |
| 用户未提供 SQL/表结构 | 提示用户粘贴建表语句、SQL 或 ORM 配置,说明审查覆盖范围 |
| 建议分库分表 | 确认当前数据量、QPS 和增长预期,评估拆分策略和迁移成本 |
边界条件处理
| 场景 | 处理方式 |
|---|
| 用户未提供 SQL/表结构 | 提示用户粘贴建表语句、SQL 或 ORM 配置,说明审查覆盖范围 |
| 生产环境已运行 | 表结构变更建议仅在业务低峰期执行,索引变更优先使用 Online DDL 工具 |
| ORM 框架差异(MyBatis/Hibernate/JPA) | SQL 和索引规约通用,ORM 特有配置(如缓存策略、懒加载)按用户实际框架调整 |
| 非 MySQL 数据库(PostgreSQL/Oracle) | 规约原则通用适用,但语法细节(如索引类型、分页语句)可能因数据库而异 |
| references 文件缺失 | 基于通用数据库设计原则给出建议,提示检查 references 目录完整性 |
规约文件索引
所有规约原文存放于 references/ 目录下,按小节拆分,按需读取:
references/
├── table-design.md # 建表规约(命名、字段类型、必备字段、分库分表)
├── index-rules.md # 索引规约(唯一索引、join、索引长度)
├── sql-rules.md # SQL语句规约(查询优化、事务、批量操作)
└── orm-rules.md # ORM映射规约(结果映射、缓存、分页)
按需读取指引
| 任务类型 | 需要读取的规约文件 |
|---|
| 审查表结构 | table-design.md |
| 审查索引设计 | index-rules.md |
| 审查SQL语句 | sql-rules.md |
| 审查ORM配置 | orm-rules.md |
| 全面数据库审查 | 按涉及领域逐个读取 |
规约等级说明
原文中的规约分为三个等级:
- 【强制】:必须遵守
- 【推荐】:建议遵守
- 【参考】:供参考
审查输出格式
- 【强制】违规项
- 【推荐】改进项
- 【参考】优化建议
- 正例参考