MySQL 透過可插拔儲存引擎架構,支援多種資料儲存與索引策略。早期預設支援 ISAM、MyISAM、HEAP(現稱 MEMORY),後期引入 InnoDB 與 BDB(BerkeleyDB)提供交易支援。本文聚焦前三者的特性、適用場景與限制。
FULLTEXT)支援。myisampack)節省空間。myisamchk。OPTIMIZE TABLE 回收碎片空間。BLOB/TEXT、AUTO_INCREMENT(早期版本)。VARCHAR 實際存為 CHAR)。USING BTREE)。DROP TABLE,避免佔用記憶體。| 特性 | ISAM | MyISAM | MEMORY |
|---|---|---|---|
| 交易支援 | ❌ | ❌ | ❌ |
| 外鍵 | ❌ | ❌ | ❌ |
| 全文索引 | ❌ | ✅ | ❌ |
| 鎖定粒度 | 表級 | 表級 | 表級 |
| 崩潰恢復 | ❌ | ✅ (myisamchk) | ❌ (資料遺失) |
| 資料持久化 | ✅ | ✅ | ❌ |
MySQL 5.5+ 預設為 InnoDB,支援 ACID 交易、列級鎖、外鍵、崩潰自動恢復,應作為首選。僅在唯讀分析、全文搜尋(MyISAM)或極高速暫存(MEMORY)等特定場景才考慮其他引擎。