服務端指南 數據存儲篇 | MySQL(02) 存儲引擎的 InnoDB 與 MyISAM 之爭

做爲 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

(完)索引

更多精彩文章,盡在「服務端思惟」微信公衆號!
事務

相關文章
相關標籤/搜索