MySQL 設計與使用助手

👤 Adodo 📦 v1.0.2 ⭐ 4.5 ⬇️ 369 下載
💻 開發程式設計 免費

📖 技能介紹


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"]


MySQL 設計與使用助手

觸發條件

當用戶出現以下意圖時啟用本 Skill: - 設計 MySQL 表結構 / Schema - MySQL 索引最佳化 / 查詢最佳化 - 分庫分表方案 - 資料遷移方案 - "如何設計 xxx 的資料庫"

設計流程(Agent 執行路徑)

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

索引核心原則

  1. 唯一特性欄位必須建唯一索引
  2. 超三表禁止 JOIN — 在應用層組裝
  3. VARCHAR 索引必須指定長度idx_name(name(20))
  4. 禁止左模糊/全模糊查詢 — 用全文索引或搜尋引擎
  5. 組合索引區分度高的在左idx_status_created(status, created_at),status 區分度高
  6. 覆蓋索引避免回表 — 將查詢欄位納入索引
  7. 延遲關聯最佳化超多分頁 — 先查主鍵再關聯

字元集

  • 必須使用 utf8mb4(utf8 是3位元組,無法存 emoji)
  • 排序規則:utf8mb4_unicode_ci(通用)/ utf8mb4_bin(精確匹配)
  • JOIN 時 collation 必須一致

漸進式載入

詳細內容按需載入 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 版本檢查時自動載入(版本 ≤ 使用者目標版本時)

版本參考文件啟用規則

  1. 模組啟用時 — 始終載入 references/version-major.md,Agent 需主動對比使用者使用的 MySQL 版本,若存在廢棄項或重大變更,立即提示使用者
  2. 深度特性 Step 0 自動載入 — 版本檢查時載入所有 version-X.Y.md(X.Y ≤ 使用者目標版本)。設計過程中 Agent 從已載入的上下文中自主檢索匹配相關特性,使用者無需指定版本號
  3. 深度特性按大版本拆分,小版本持續追加 — 如 version-8.0.md 包含該大版本下所有小版本的設計級特性。更新時在檔案中新增 ## X.Y.Z 版本節即可,不單開檔案

硬規則

  1. 設計規範內容來自權威資料(阿里規約/MySQL官方文件),不編造
  2. 所有 CREATE TABLE 必須包含 COMMENT(表註釋 + 欄位註釋)
  3. 所有表必須有主鍵(BIGINT UNSIGNED AUTO_INCREMENT 或分散式ID)

    更多技能請訪問小蔥技能站7w4.net。

  4. 禁止物理刪除,使用 is_deleted 邏輯刪除
  5. 小數禁止用 FLOAT/DOUBLE,必須 DECIMAL
  6. 表必須有 create_timeupdate_time
  7. 單表超過 500 萬行或 2GB 時必須考慮分庫分表

🤖 AI 評測

這個 Skill 質量不錯,內容專業實用,涵蓋了 MySQL 表設計、索引最佳化、分庫分表等核心場景。規範嚴謹、版本支援全面是其亮點,快速參考指南也很實用。不足之處是內容偏向專業規範,普通使用者理解起來有一定門檻,且實際應用案例相對較少。建議有一定資料庫基礎的使用者使用效果會更好。

📊 多維度評分

適應性4.4
規範性4.4
有效性4.7
可靠性4.1
可信度5

📁 包含檔案 (10 個)

📄 SKILL.md 5.8 KB
📄 references/best-practices.md 4.9 KB
📄 references/design-spec.md 4.9 KB
📄 references/patterns.md 13.3 KB
📄 references/usage-guide.md 5 KB
📄 references/version-5.6.md 3.1 KB
📄 references/version-5.7.md 2.7 KB
📄 references/version-8.0.md 4.7 KB
📄 references/version-9.0.md 3.6 KB
📄 references/version-major.md 4.9 KB