作為 MySQL 資料庫的兩種主要的儲存引擎,InnoDB 與 MyISAM 各有長處。
原文地址:服務端指南 資料儲存篇 | MySQL(02) 儲存引擎的 InnoDB 與 MyISAM 之爭
部落格地址:blog.720ui.com/
在 MySQL 5.1 及之前的版本中,MyISAM 是預設的儲存引擎,而在 MySQL 5.5 版本以後,預設使用 InnoDB 儲存引擎。
MyISAM 不支援行級鎖,換句話說,MyISAM 會對整張表加鎖,而不是針對行。同時,MyISAM 不支援事務和外來鍵。MyISAM 可被壓縮,儲存空間較小,而且 MyISAM 在篩選大量資料時非常快。
InnoDB 是事務型引擎,當事務異常提交時,會被回滾。同時,InnoDB 支援行鎖。此外,InnoDB 需要更多儲存空間,會在記憶體中建立其專用的緩衝池用於高速緩衝資料和索引。InnoDB 支援自動奔潰恢復特性。
InnoDB 與 MyISAM 的主要區別
方面 | MyISAM | InnoDB |
---|---|---|
事務 | 不支援 | 支援 |
外來鍵 | 不支援 | 支援 |
行級鎖 | 不支援 | 支援 |
自動奔潰恢復 | 不支援 | 支援 |
對於如何選擇 InnoDB 與 MyISAM 儲存引擎,我的建議:一般情況下,應該優先選擇 InnoDB 儲存引擎,並且儘量不要將 InnoDB 與 MyISAM 混合使用。
(完)
更多精彩文章,盡在「服務端思維」微信公眾號!