InnoDB vs MyISAM:六大差異速覽
本文為精簡版對比,適合快速查閱核心差異點。
1. 構成差異
- MyISAM:
.frm、.MYD、.MYI 三文件。
- InnoDB:表空間數據文件 + 日誌文件,受限於 OS 文件大小。
2. 事務處理
- MyISAM:不支援事務,讀取快。
- InnoDB:支援事務、外鍵、行鎖、MVCC。
3. DML 操作
- 大量 SELECT:MyISAM 優。
- 大量 INSERT/UPDATE:InnoDB 優。
DELETE FROM table:InnoDB 逐行刪,MyISAM 重建表。
LOAD TABLE FROM MASTER:InnoDB 不支援。
4. AUTO_INCREMENT
- MyISAM:支援聯合索引最後一列,計數器持久化,速度快。
- InnoDB:需單列索引,計數器僅在記憶體。
5. 行數統計
- MyISAM:
COUNT(*) 秒出結果。
- InnoDB:全表掃描計算。
6. 鎖機制
- MyISAM:表鎖。
- InnoDB:行鎖(不可確定範圍時退化為表鎖)。
結論:InnoDB 為現代應用首選;MyISAM 僅適合唯讀、報表等特定場景。