做爲 MySQL 數據庫的兩種主要的存儲引擎,InnoDB 與 MyISAM 各有長處。數據庫
在 MySQL 5.1 及以前的版本中,MyISAM 是默認的存儲引擎,而在 MySQL 5.5 版本之後,默認使用 InnoDB 存儲引擎。索引
MyISAM 不支持行級鎖,換句話說,MyISAM 會對整張表加鎖,而不是針對行。同時,MyISAM 不支持事務和外鍵。MyISAM 可被壓縮,存儲空間較小,並且 MyISAM 在篩選大量數據時很是快。事務
InnoDB 是事務型引擎,當事務異常提交時,會被回滾。同時,InnoDB 支持行鎖。此外,InnoDB 須要更多存儲空間,會在內存中創建其專用的緩衝池用於高速緩衝數據和索引。InnoDB 支持自動奔潰恢復特性。內存
InnoDB 與 MyISAM 的主要區別it
對於如何選擇 InnoDB 與 MyISAM 存儲引擎。im
建議:通常狀況下,應該優先選擇 InnoDB 存儲引擎,而且儘可能不要將 InnoDB 與 MyISAM 混合使用。數據