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