InnoDB與MyISAM等存儲引擎對比

文章原文:blog.ouyangsihai.cn >> InnoDB與MyISAM等存儲引擎對比

InnoDB存儲引擎介紹

InnoDB引擎是Mysql的默認的存儲引擎,他有很多自己的特性,下面一一列舉。

  • 支持事務,InnoDB存儲引擎主要就是爲了在線事務處理(OLTP)的應用而設計的。
  • 行鎖設計,支持外鍵,非鎖定讀。
  • 支持多版本的併發控制(MVCC)來獲得高併發性。
  • 提供了插入緩衝、二次寫、自適應哈希索引、預讀等高性能和高可用的功能。

上面這些算是 InnoDB 存儲引擎的一些特點了,也是它的優勢所在,爲什麼 InnoDB 引擎會使用如此廣泛,就是因爲它能有很好的性能。

MyISAM儲存引擎介紹

  • 不支持事務,它的設計目標是面向在線分析的應用(OLAP)。
  • 支持全文索引。
  • 表鎖設計
  • 它的緩衝池只緩衝索引文件不緩衝數據文件,所以 MyISAM 存儲引擎表由 MYDMYI 組成,前者存儲數據文件,後者存儲索引文件。

存儲引擎之間的對比

這一部分,主要簡要的介紹一下各個存儲引擎之間的差別,及主要的作用及特點。

特性對比

特性 MyISAM InnoDB BDB Memory Archive NDB
存儲限制 64TB
事務 支持 支持
鎖級別 表鎖 行鎖 page
MVCC(併發控制) 支持 支持 支持
全文索引 支持
集羣索引 支持
數據緩存和索引緩存 支持 支持 支持
數據壓縮 支持 支持
批量插入速度 很高
集羣數據庫支持 支持
外鍵支持 支持
適用場景 不需要事務的操作;插入、更新少,讀取頻繁;頻繁的統計計算。 需要事務的操作;更新數據需要使用行級鎖;大數據量讀寫;大型互聯網應用。 類似 InnoDB 數據量不大,需要被頻繁的訪問,而且數據丟失不會對業務產生比較嚴重的影響。 存儲引擎基本上用於數據歸檔,作爲日誌表 集羣

存儲引擎特性介紹

存儲引擎 主要特點
BDB 可替代InnoDB的事務引擎,支持COMMIT、ROLLBACK和其他事務特性
Memory 數據存儲在內存中,重啓或崩潰,數據消失,使用哈希索引
Archive 只支持Insert和Select操作,支持索引,非常適合存儲歸檔數據, 目標:高速插入和壓縮功能
NDB 集羣存儲引擎,數據全部放在內存中,高可用、高性能的集羣系統
Federated 不存放數據,只是指向一臺遠程MySQL數據庫服務器上的表
Maria 新開發引擎,用於取代MyISAM存儲引擎。 支持事務和非事務、緩存、索引文件、行鎖、MVCC功能
文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公衆號好好學java,獲取優質學習資源。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章