文章原文: blog.ouyangsihai.cn >> InnoDB與MyISAM等存儲引擎對比
InnoDB引擎是Mysql的默認的存儲引擎,他有不少本身的特性,下面一一列舉。html
上面這些算是 InnoDB 存儲引擎的一些特色了,也是它的優點所在,爲何 InnoDB 引擎會使用如此普遍,就是由於它能有很好的性能。java
MYD
和 MYI
組成,前者存儲數據文件,後者存儲索引文件。這一部分,主要簡要的介紹一下各個存儲引擎之間的差異,及主要的做用及特色。sql
特性 | 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
,獲取優質學習資源。