InnoDB与MyISAM等存储引擎对比
生活随笔
收集整理的這篇文章主要介紹了
InnoDB与MyISAM等存储引擎对比
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章原文:blog.ouyangsihai.cn >> InnoDB與MyISAM等存儲引擎對比
InnoDB存儲引擎介紹
InnoDB引擎是Mysql的默認的存儲引擎,他有很多自己的特性,下面一一列舉。
- 支持事務,InnoDB存儲引擎主要就是為了在線事務處理(OLTP)的應用而設計的。
- 行鎖設計,支持外鍵,非鎖定讀。
- 支持多版本的并發控制(MVCC)來獲得高并發性。
- 提供了插入緩沖、二次寫、自適應哈希索引、預讀等高性能和高可用的功能。
上面這些算是 InnoDB 存儲引擎的一些特點了,也是它的優勢所在,為什么 InnoDB 引擎會使用如此廣泛,就是因為它能有很好的性能。
MyISAM儲存引擎介紹
- 不支持事務,它的設計目標是面向在線分析的應用(OLAP)。
- 支持全文索引。
- 表鎖設計。
- 它的緩沖池只緩沖索引文件,不緩沖數據文件,所以 MyISAM 存儲引擎表由 MYD 和 MYI 組成,前者存儲數據文件,后者存儲索引文件。
存儲引擎之間的對比
這一部分,主要簡要的介紹一下各個存儲引擎之間的差別,及主要的作用及特點。
特性對比
| 存儲限制 | 無 | 64TB | 無 | 有 | 無 | 有 |
| 事務 | 支持 | 支持 | ||||
| 鎖級別 | 表鎖 | 行鎖 | page | 表 | 行 | 行 |
| MVCC(并發控制) | 支持 | 支持 | 支持 | |||
| 全文索引 | 支持 | |||||
| 集群索引 | 支持 | |||||
| 數據緩存和索引緩存 | 支持 | 支持 | 支持 | |||
| 數據壓縮 | 支持 | 支持 | ||||
| 批量插入速度 | 高 | 低 | 高 | 高 | 很高 | 高 |
| 集群數據庫支持 | 支持 | |||||
| 外鍵支持 | 支持 | |||||
| 適用場景 | 不需要事務的操作;插入、更新少,讀取頻繁;頻繁的統計計算。 | 需要事務的操作;更新數據需要使用行級鎖;大數據量讀寫;大型互聯網應用。 | 類似 InnoDB | 數據量不大,需要被頻繁的訪問,而且數據丟失不會對業務產生比較嚴重的影響。 | 存儲引擎基本上用于數據歸檔,作為日志表 | 集群 |
存儲引擎特性介紹
| BDB | 可替代InnoDB的事務引擎,支持COMMIT、ROLLBACK和其他事務特性 |
| Memory | 數據存儲在內存中,重啟或崩潰,數據消失,使用哈希索引 |
| Archive | 只支持Insert和Select操作,支持索引,非常適合存儲歸檔數據, 目標:高速插入和壓縮功能 |
| NDB | 集群存儲引擎,數據全部放在內存中,高可用、高性能的集群系統 |
| Federated | 不存放數據,只是指向一臺遠程MySQL數據庫服務器上的表 |
| Maria | 新開發引擎,用于取代MyISAM存儲引擎。 支持事務和非事務、緩存、索引文件、行鎖、MVCC功能 |
文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。
總結
以上是生活随笔為你收集整理的InnoDB与MyISAM等存储引擎对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我,分享我的故事!
- 下一篇: Java后台开发Tomcat添加http