兩大引擎各有優劣,選型取決於業務讀寫模式與一致性要求。
| 特性 | MyISAM | InnoDB |
|---|---|---|
| 事務 | 不支援 | 支援 (ACID) |
| 外鍵 | 不支援 | 支援 |
| 鎖粒度 | 表鎖 | 行鎖 (MVCC) |
| 全文索引 | 5.6 前唯一支援 | 5.6+ 支援 |
| COUNT(*) 無 WHERE | O(1) 讀元資料 | O(N) 掃描聚簇索引 |
| 崩潰恢復 | 無,易損壞 | Redo/Undo Log 自動恢復 |
| AUTO_INCREMENT | 可建複合索引 | 需單獨索引 |
| DELETE 全表 | 重建表 (快) | 逐行刪除 (慢) |
WHERE name LIKE '%aaa%')。COUNT(*) 瞬間返回。COUNT(*) 需全掃聚簇索引。COUNT(主鍵) + WHERE 唯一索引列 可走二級索引覆蓋掃描,大幅加速。但不建議為此改引擎,失去事務/行鎖/崩潰恢復得不償失。應優化查詢或維護計數表/Redis 計數器。