MySQL 獨特的插件式存儲引擎架構允許同實例混用多引擎。本文對比 MyISAM、InnoDB、NDB Cluster 三大主流引擎特性、適用場景與最佳實踐,助力業務選型。
key_buffer),不緩存數據無事務需求、並發低、讀多寫少、數據一致性要求不高(如日誌、報表快照)。
key_bufferINSERT DELAYED 批量寫入Query CacheCOUNT(*) 無 WHERE 時極快(只讀元數據)buffer_pool)需事務、高並發寫入、數據一致性強、記憶體充足(利用 Buffer Pool)。
innodb_flush_log_at_trx_commit 勿過度追求 1極高並發、單請求延遲不極端敏感、查詢模式固定簡單、不想自建 Sharding 中間件。
| 維度 | MyISAM | InnoDB | NDB Cluster |
|---|---|---|---|
| 事務 | ❌ | ✅ | ✅ |
| 鎖粒度 | 表 | 行 | 行 |
| 緩存 | 僅索引 | 索引+數據 | 全內存 |
| 並發寫入 | 低 | 高 | 極高 |
| 運維複雜度 | 低 | 中 | 高 |
其他引擎 (Memory, Merge, CSV, Archive) 場景較窄,不再展開。