做爲 MySQL 數據庫的兩種主要的存儲引擎,InnoDB 與 MyISAM 各有長處。mysql
原文地址:服務端指南 數據存儲篇 | MySQL(02) 存儲引擎的 InnoDB 與 MyISAM 之爭
博客地址:blog.720ui.com/sql
在 MySQL 5.1 及以前的版本中,MyISAM 是默認的存儲引擎,而在 MySQL 5.5 版本之後,默認使用 InnoDB 存儲引擎。數據庫
MyISAM 不支持行級鎖,換句話說,MyISAM 會對整張表加鎖,而不是針對行。同時,MyISAM 不支持事務和外鍵。MyISAM 可被壓縮,存儲空間較小,並且 MyISAM 在篩選大量數據時很是快。微信
InnoDB 是事務型引擎,當事務異常提交時,會被回滾。同時,InnoDB 支持行鎖。此外,InnoDB 須要更多存儲空間,會在內存中創建其專用的緩衝池用於高速緩衝數據和索引。InnoDB 支持自動奔潰恢復特性。ui
InnoDB 與 MyISAM 的主要區別cdn
方面 | MyISAM | InnoDB |
---|---|---|
事務 | 不支持 | 支持 |
外鍵 | 不支持 | 支持 |
行級鎖 | 不支持 | 支持 |
自動奔潰恢復 | 不支持 | 支持 |
對於如何選擇 InnoDB 與 MyISAM 存儲引擎,個人建議:通常狀況下,應該優先選擇 InnoDB 存儲引擎,而且儘可能不要將 InnoDB 與 MyISAM 混合使用。blog
(完)索引
更多精彩文章,盡在「服務端思惟」微信公衆號!
事務