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

樑桂釗發表於2019-03-01

作為 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 混合使用。

(完)

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

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

相關文章