測試環境
- CPU 2GHz、內存 2GB、局域網
- 長連接、隨機查詢條件
- 測試數據量:88,171 條 / 10,681 條
測試結果 (QPS)
| 引擎 | 域名 | 緩存命中 QPS | 無緩存 QPS |
| InnoDB | Innodb.Abc.com | 7,125 | 11.1 |
| MyISAM | myisam.Abc.com | 7,122 | 15.2 |
| BDB | Bdb.Abc.com | 7,360 | 11.9 |
| BDB+索引 | Index.Bdb.Abc.com | 7,502 | 11.8 |
| Memory | 不支援 BLOB | — | — |
小數據量 (10,681 條) 無緩存 QPS
| 引擎 | QPS |
| InnoDB | 106 |
| MyISAM | 130 |
| BDB | 2,338 |
| BDB+索引 | 109 |
結果分析
- 緩存命中時:四大引擎 QPS 接近,瓶頸在網絡/協議解析
- 無緩存大數據量:MyISAM 略優(全表掃描無事務開銷),InnoDB/BDB 相近
- 無緩存小數據量:BDB 異常高 (2,338),疑為測試環境特異性(可能數據全在內存、鎖機制差異),**不具備普適參考價值**
- Memory 引擎不支援 BLOB/TEXT,限制較大
選型建議
- **InnoDB**:事務、行鎖、崩潰恢復、高併發寫入 → **首選**
- **MyISAM**:純讀、全文索引、只讀報表、非關鍵日志
- **BDB**:已廢棄 (5.1+ 移除),**不可用於新項目**
- **Memory**:臨時表、查找表、會話存儲,數據可丟失
現代視角補充
MySQL 8.0 僅支援 InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Federated、NDB。生產核心業務一律 InnoDB,其他引擎僅作輔助。