理解 MySQL 邏輯架構是效能調校與架構選型的基石。本文從連接層、服務層、儲存引擎層三層剖析,重點對比 MyISAM 與 InnoDB 的鎖機制、事務支援、崩潰恢復、備份特性,給出明確選型建議。
handler 介面)。| 鎖類型 | 別名 | 相容性 | 代表引擎 |
|---|---|---|---|
| 讀鎖 | 共享鎖 (S) | 讀讀相容,讀寫互斥 | MyISAM (表鎖) |
| 寫鎖 | 排他鎖 (X) | 寫寫/讀寫互斥 | InnoDB (行鎖) |
| 特性 | 英文 | 含義 |
|---|---|---|
| 原子性 | Atomicity | 全做或全不做 |
| 一致性 | Consistency | 從一致狀態轉換到一致狀態 |
| 隔離性 | Isolation | 事務間互不干擾 |
| 持久性 | Durability | 提交後永久生效 |
事務狀態機:Active → Partially Committed → Committed / Failed → Aborted。
| 維度 | MyISAM | InnoDB |
|---|---|---|
| 檔案結構 | .frm/.MYD/.MYI 三檔 | .frm + 共享表空間 ibdata1 / 獨立 .ibd |
| 鎖粒度 | 表鎖 | 行鎖 |
| 事務 | 不支援 | 支援 (ACID) |
| 外鍵 | 不支援 | 支援 |
| 索引類型 | 非叢集 (Heap) | 叢集索引 (PK 即資料) |
| 崩潰恢復 | 慢,需 REPAIR TABLE | 快,Redo/Undo Log 自動恢復 |
| 熱備份 | 不支援 | 支援 (xtrabackup/--single-transaction) |
| 全文索引 | 5.6+ 支援 | 5.6+ 支援 |
查看目前引擎:SHOW TABLE STATUS LIKE 't'\\G 或 SHOW CREATE TABLE t。