默認支援引擎
| 引擎 | 核心特性 | 優勢 | 劣勢 | 典型場景 |
| ISAM | 舊格式,讀多寫少 | 讀快、資源佔用低 | 無事務、無容錯、崩潰不可恢復 | 已淘汰 |
| MyISAM | ISAM 擴展、默認引擎、表鎖、全文索引 | 讀極快、功能豐富、MyISAMChk/MyISAMPack 工具 | 無事務、表鎖併發寫弱、需定期 OPTIMIZE | 讀多寫少、Web 讀密集、全文搜索 |
| HEAP (MEMORY) | 純內存、Hash 索引 | 極快 | 重啟丟失、不支援 BLOB/TEXT、無事務 | 臨時表、緩存、中間結果 |
| InnoDB | 事務、行鎖、外鍵、MVCC、Redo/Undo Log | ACID、高併發寫、崩潰恢復 | 較慢、空間佔用大 | OLTP、金融、高一致性業務 |
| BDB (BerkeleyDB) | 事務、頁鎖 | 支援事務 | 較 InnoDB 少用、鎖粒度粗 | 歷史遺留 |
引擎指定與切換
-- 建表指定
CREATE TABLE t (id INT PRIMARY KEY, val TINYINT) ENGINE=MyISAM;
-- 修改現有表
ALTER TABLE t ENGINE=InnoDB;
-- 查看表引擎
SHOW TABLE STATUS FROM db_name;
MySQL 6.0 新特性(歷史版本)
- Falcon 事務引擎:Oracle 收購 InnoDB 後自研
- 擴展 Unicode:utf16、utf32、4 字節 utf8
BACKUP DATABASE / RESTORE 原生備份還原
INFORMATION_SCHEMA 增強
- 子查詢/Join 優化、批量索引訪問
RESET SLAVE 不再重置連接參數
LOCK TABLES ... IN SHARE/EXCLUSIVE MODE 事務級表鎖
- 增強 XML、擴展註釋
選型決策樹
- 需要事務/外鍵/行鎖 → InnoDB
- 純讀、全文搜索、空間敏感 → MyISAM
- 臨時中間表、極高速讀寫、可丟失 → MEMORY
- 日誌歸檔、僅追加讀取 → Archive
最佳實踐
- 生產環境核心業務表統一 InnoDB
- 報表/日誌表可用 MyISAM/Archive
- 避免混用引擎導致事務邊界混亂
- 定期
SHOW ENGINE INNODB STATUS 監控引擎內部狀態