InnoDB和MyISAM存儲引擎的區別

      在MySQL數據庫的使用過程當中咱們常常會聽到存儲引擎這個名詞。MySQL的存儲引擎有好多種如InnoDB、MyISAM、Memory、NDB等等,多存儲引擎也是MySQL數據庫的特點。數據庫

      InnoDB和MyISAM存儲引擎是MySQL數據庫中常用的引擎,下面就將介紹下它們的功能特性。緩存

     

      InnoDB:支持事務面向在線事務處理(OLTP),基於磁盤存儲按照頁的方式進行管理。在存儲過程當中若是沒有顯式定義表主鍵則會自動生成6字節的ROWID並以此爲主鍵。數據結構

      特色:行鎖設計、支持外鍵、支持全文索引、支持非鎖定讀、支持MVCC(多版本併發控制)。架構

      功能:插入緩存、二次寫、自適應哈希索引、預讀等等。併發

     

      InnoDB的體系架構:線程、內存池、文件。後臺線程的做用負責刷新內存池中數據,將數據刷新到磁盤文件。操作系統

      它的數據結構是棵B+樹。非葉子節點存放的是索引,數據都在葉子節點上。在數據查找時基於二分查找法。支持的索引有B+樹、全文索引、哈希索引(自適應,不可人爲干預)。線程

       

      MyISAM:不支持事務、支持全文索引、表鎖設計面向聯機分析處理(OLHP)。它的緩衝池只緩存索引文件而不緩衝數據文件。數據文件的緩存由操做系統完成。設計

      它的數據結構是棵B-樹(B樹不叫B減樹),它的數據能夠存儲在非葉子節點上。它也是基於二分查找。索引

      因爲筆者也是初學者,對於好多東西的理解不是很深入。文中出現的錯誤但願你們多諒解斧正。有對數據庫感興趣的朋友還望多多留意交流。事務

相關文章
相關標籤/搜索