MySQL: Storage Engine
常見的Storage Engine
-
innoDB (Default)
- 支援 transaction, foreign key
- InnoDB 支援表, 行級鎖
- 保證資料完整性
-
MyISAM
- 不支援 transaction, foreign key
- MyISAM 只支援表級鎖
- 讀取效率高
- 佔用空間少
- 在修改表時會鎖表
- 適用場景是讀多寫少,且對完整性要求不高
- MyISAM 崩潰後發生損壞的機率比InnoDB 高很多,而且復原的速度也更慢
-
Memory
- 不支援 transaction, foreign key
- 存儲在內存中,因此它的讀寫效率很高
- 服務重啟之後數據會丟失
- 適用場景是讀寫效率要求高,但對數據丟失不敏感
| innoDB | MyISAM | MEMORY |
---|
transaction | V | X | X |
Foreign Key | V | X | X |
table-level locks | V | V | V |
row-level locks | V | X | X |