name: mysql-design slug: mysql-design-adodo displayName: MySQL 設計與使用助手 description: 幫助Agent為專案進行MySQL Schema設計、索引設計、查詢設計,並提供場景化使用指南。當用戶需要設計資料庫表結構、最佳化查詢效能、規劃分庫分表方案時觸發。 version: 1.0.2 metadata: clawdbot: emoji: "🐬" requires: anyBins: ["mysql"] os: ["linux", "darwin"]
當用戶出現以下意圖時啟用本 Skill: - 設計 MySQL 表結構 / Schema - MySQL 索引最佳化 / 查詢最佳化 - 分庫分表方案 - 資料遷移方案 - "如何設計 xxx 的資料庫"
0. 版本檢查 → 載入 references/version-major.md 對比使用者版本,識別廢棄項和重大變更。同時載入所有 version-X.Y.md(X.Y ≤ 使用者目標版本),後續設計過程中 Agent 從已載入的上下文中自主匹配深度特性
1. 需求分析 → 理解業務實體和關係
2. 概念設計 → ER模型,識別實體/關係/屬性
3. 規範約束 → 載入 references/design-spec.md,確保命名/欄位/索引符合規範
4. 邏輯設計 → 表結構DDL,含索引/約束/註釋
5. 物理設計 → 儲存引擎/字元集/分割槽策略
6. 使用指引 → 載入 references/usage-guide.md,給出場景化操作
7. 最佳化建議 → 載入 references/best-practices.md,給出效能建議
8. 模板參考 → 載入 references/patterns.md,匹配業務模板
每張表必須包含:id (BIGINT UNSIGNED AUTO_INCREMENT) / create_time (DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP) / update_time (DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
| 物件 | 規範 | 示例 |
|---|---|---|
| 表名 | 小寫+下劃線,業務名_表作用 | trade_order |
| 欄位名 | 小寫+下劃線 | user_name |
| 主鍵 | pk_表名 |
pk_trade_order |
| 唯一索引 | uk_表名_欄位 |
uk_user_email |
| 普通索引 | idx_表名_欄位 |
idx_order_create_time |
| 布林欄位 | is_xxx (TINYINT UNSIGNED) |
is_deleted |
| 場景 | 推薦 | 禁止 |
|---|---|---|
| 主鍵 | BIGINT UNSIGNED | INT 自增(範圍不夠) |
| 金額 | DECIMAL(18,2) | FLOAT / DOUBLE |
| 短字串 (<256) | VARCHAR(n) | TEXT |
| 長文本 | TEXT(拆表) | 超長 VARCHAR |
| 定長字串 | CHAR(n) | VARCHAR(1) |
| 布林 | TINYINT UNSIGNED | BIT / BOOLEAN |
| 時間 | DATETIME / TIMESTAMP | VARCHAR 存時間 |
| 狀態/列舉 | TINYINT UNSIGNED + COMMENT | ENUM |
idx_name(name(20))idx_status_created(status, created_at),status 區分度高utf8mb4_unicode_ci(通用)/ utf8mb4_bin(精確匹配)詳細內容按需載入 references/:
| 主題 | 檔案 | 何時載入 |
|---|---|---|
| Schema 設計規範(命名/欄位/索引/範式) | references/design-spec.md |
Step 3 規範約束 |
| 場景化操作指南(建表/DDL/最佳化/遷移/分表) | references/usage-guide.md |
Step 6 使用指引 |
| 最佳實踐(索引/事務/分庫/主從/運維) | references/best-practices.md |
Step 7 最佳化建議 |
| 業務 Schema 模板(6類業務完整DDL) | references/patterns.md |
Step 8 模板參考 |
| 重大版本特性(廢棄/依賴變更/新模組) | references/version-major.md |
Step 0 版本檢查(模組啟用時即載入) |
| 深度版本特性 — 9.0(VECTOR/Event預編譯) | references/version-9.0.md |
Step 0 版本檢查時自動載入(版本 ≤ 使用者目標版本時) |
| 深度版本特性 — 8.0/8.4(CTE/視窗函式/InnoDB引數/GTID標籤) | references/version-8.0.md |
Step 0 版本檢查時自動載入(版本 ≤ 使用者目標版本時) |
| 深度版本特性 — 5.7(Native JSON/生成列/多源複製/sys Schema) | references/version-5.7.md |
Step 0 版本檢查時自動載入(版本 ≤ 使用者目標版本時) |
| 深度版本特性 — 5.6(GTID/InnoDB全文搜尋/Online DDL/MTS) | references/version-5.6.md |
Step 0 版本檢查時自動載入(版本 ≤ 使用者目標版本時) |
references/version-major.md,Agent 需主動對比使用者使用的 MySQL 版本,若存在廢棄項或重大變更,立即提示使用者version-8.0.md 包含該大版本下所有小版本的設計級特性。更新時在檔案中新增 ## X.Y.Z 版本節即可,不單開檔案更多技能請訪問小蔥技能站7w4.net。
is_deleted 邏輯刪除create_time 和 update_time這個 Skill 質量不錯,內容專業實用,涵蓋了 MySQL 表設計、索引最佳化、分庫分表等核心場景。規範嚴謹、版本支援全面是其亮點,快速參考指南也很實用。不足之處是內容偏向專業規範,普通使用者理解起來有一定門檻,且實際應用案例相對較少。建議有一定資料庫基礎的使用者使用效果會更好。