Mysql數據庫引擎

MySQL默認存儲引擎的變遷數據庫

在MySQL 5.1以前的版本中,默認的搜索引擎是MyISAM,從MySQL 5.5以後的版本中,默認的搜索引擎變動爲InnoDB。性能

 

MyIASM引擎搜索引擎

  1.寫入操做是鎖住全表支持數據庫事務、也支持外鍵。  url

  2.MyISAM會保存好具體的行數
spa

   3.MyISAM使用的所有都是非彙集索引,能夠不定義「主鍵」操作系統

    4.MyISAM中的索引爲B-Tree結構.net

InnoDB引擎日誌

 1.提供了「行鎖」、支持數據庫事務、提供了外鍵服務blog

  注意:「行鎖」的使用是有條件的,即where 查詢的關鍵字必定被上了索引,且必定要明確(不能用模糊查詢)。索引

      若是不知足,這兩個條件InnoDB仍是會鎖住全表。

 2.Innodb不會保存行數,使用count(*)時,會搜索全表。

   3.Innodb由彙集索引和輔助索引(非彙集索引)構成,但必須有一個彙集索引,且默認與主鍵綁定。

    建表的時候能夠不顯示的指定主鍵,可是則MySQL系統會自動選擇一個能夠惟一標識數據記錄的列做爲主鍵,

    若是不存在這種列,則MySQL自動爲InnoDB表生成一個隱含字段做爲主鍵,這個字段長度爲6個字節,類型爲長整形。

  4.Innodb的彙集(主鍵)索引爲B+Tree,其他爲B-Tree

 

MyISAM與InnoDB構成上的區別

(1)每一個MyISAM在磁盤上存儲成三個文件:

第一個文件的名字以表的名字開始,擴展名指出文件類型,.frm文件存儲表定義。 
第二個文件是數據文件,其擴展名爲.MYD (MYData)。 
第三個文件是索引文件,其擴展名是.MYI (MYIndex)。

(2)基於磁盤的資源是InnoDB表空間數據文件和它的日誌文件,InnoDB 表的 大小隻受限於操做系統文件的大小,通常爲 2GB

 

適用場景:

  MyISAM適合: 
  (1)作不少count 的計算; 
  (2)插入不頻繁,查詢很是頻繁,若是執行大量的SELECT,MyISAM是更好的選擇; 
  (3)沒有事務。

  InnoDB適合: 
  (1)可靠性要求比較高,或者要求事務; 
  (2)表更新和查詢都至關的頻繁,而且表鎖定的機會比較大的狀況指定數據引擎的建立; 
  (3)若是你的數據執行大量的INSERT或UPDATE,出於性能方面的考慮,應該使用InnoDB表; 
  (4)DELETE FROM table時,InnoDB不會從新創建表,而是一行一行的 刪除; 
  (5)LOAD TABLE FROM MASTER操做對InnoDB是不起做用的,解決方法是首先把InnoDB表改爲MyISAM表,導入數據後再改爲InnoDB表,可是對於使用的額外的InnoDB特性(例如外鍵)的表不適用。

 

參考網址:https://blog.csdn.net/xlgen157387/article/details/68978320#commentBox

相關文章
相關標籤/搜索