InnoDB與MyISAM等存儲引擎對比

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

InnoDB存儲引擎介紹

InnoDB引擎是Mysql的默認的存儲引擎,他有不少本身的特性,下面一一列舉。java

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

上面這些算是 InnoDB 存儲引擎的一些特色了,也是它的優點所在,爲何 InnoDB 引擎會使用如此普遍,就是由於它能有很好的性能。sql

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,獲取優質學習資源。緩存

相關文章
相關標籤/搜索