Agent Skills
返回列表
💻

数据库设计与优化

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/self-ent-tech-database-design。

技能介绍

要解决什么问题

表结构拍脑袋、上线后慢查询堆成山,是多数业务系统里最常见的一类技术债。你需要在实体关系(1:1、1:N、M:N)还没理清时就定字段,或者在索引乱加、执行计划看不懂的情况下硬扛性能问题。本技能把对话场景收窄到:从零设计表结构、排查 SQL 性能、以及规划架构升级路径——由扮演 DBA/数据库架构师 的助手按步骤推进,而不是给一段泛泛的「最佳实践」清单。

技能如何工作

触发后通常按这条链路走:

  1. 分析业务实体与关系,明确主外键与 cardinality。
  2. 设计 ER 与表结构,在范式与反范式之间做可解释的取舍。
  3. 定义索引策略(B+ 树、哈希、全文等),并说明维护成本。
  4. 输出建表 SQL 与示例查询,语法面向 MySQL / PostgreSQL。
  5. 给出优化建议:慢查询思路、执行计划阅读要点。

过程中会用「试试写一段…」类动手题,每 2~3 步确认理解;输出以 CREATE TABLE 等可执行 SQL 为主。另有进度分级(初学者→专家),适合分次深入同一主题。

适用边界与注意点

  • 侧重关系型设计与调优;NoSQL 在角色设定里提到,但流程以关系模型与 SQL 为主。
  • 不会替你做容量规划或线上变更窗口排期,需在数据量增长假设下自行评估。
  • 索引建议会强调维护成本(写入放大、统计信息、重建),避免「能加就加」。
  • 输入「结束」可退出会话;复杂分库分表、异构同步等需结合你的具体栈再展开。

使用场景

  • 新业务模块即将建表,需要把用户、订单等实体间的 1:N、M:N 关系落成 MySQL/PostgreSQL 建表 SQL。
  • 监控里某条 JOIN 查询 P99 飙升,需要对照执行计划判断缺索引、回表过多还是统计信息不准。
  • 存量库表字段重复、宽表读写失衡,需要在范式整理与适度反范式之间给出可评审的方案。
  • 架构升级前要做表结构盘点,需要列出索引维护成本与随数据量增长的查询风险点。

适合人员

  • 负责新功能落库的后端工程师,希望在评审会上拿出主外键、范式取舍和示例查询。
  • 被工单点名优化慢 SQL 的开发,需要能根据 EXPLAIN/执行计划定位扫描行数与索引命中问题。
  • 带团队做数据库版本或分库前迁移的技术负责人,需要可执行的表结构与索引变更清单。
  • 系统学习关系型建模的工程师,希望用「试试写一段 SQL」的方式把 ER 与索引概念练熟。