引擎分類
| 引擎 | 類別 | 交易支援 | 鎖粒度 | 典型用途 |
| MyISAM | 非交易 | 否 | 表級 | 唯讀/多讀少寫、全文搜尋、日誌、報表 |
| InnoDB | 交易 | 是 (ACID) | 行級 | 核心業務、高併發寫入、外鍵、崩潰恢復 |
| MEMORY (HEAP) | 非交易 | 否 | 表級 | 暫存表、查找表、極速讀取(資料重啟消失) |
| MERGE | 非交易 | 否 | 表級 | 同結構多表邏輯合併、歸檔分區 |
| Archive | 非交易 | 否 | 表級 | 大量歷史資料壓縮儲存(僅支援 INSERT/SELECT) |
| CSV | 非交易 | 否 | 表級 | 與試算軟體交換資料、日誌匯出 |
| NDB Cluster | 交易 | 是 | 行級 | 分散式高可用、記憶體內運算、電信級應用 |
MyISAM vs InnoDB 核心取捨
| 面向 | MyISAM | InnoDB |
| 交易 | 不支援 | 支援 |
| 外鍵 | 不支援 | 支援 |
| 全文索引 | 5.6+ 支援 | 5.6+ 支援 |
| 鎖粒度 | 表級 | 行級 |
| 崩潰恢復 | 需手動修復 | 自動 (Redo/Undo Log) |
| COUNT(*) | 極快 (儲存行數) | 需掃描 |
| 空間佔用 | 較小 | 較大 (含系統表空間) |
選型決策樹
- 需要交易/外鍵/高併發寫入 → InnoDB(預設最佳選擇)。
- 唯讀/多讀少寫/全文搜尋/日誌/報表 → MyISAM。
- 暫存中間結果/查找表 → MEMORY。
- 同結構歷史分表統一查詢 → MERGE。
- 分散式高可用/記憶體運算 → NDB Cluster。
混合部署
MySQL 允許同一資料庫內不同表使用不同引擎,依各表存取模式靈活搭配。