MySQL資料庫MyISAM和InnoDB儲存引擎的比較

來源:互聯網
上載者:User

標籤:blog   http   ar   使用   sp   for   strong   檔案   on   

轉載:http://www.cnblogs.com/vicenteforever/articles/1613119.html

 

MyISAM

  
  InnoDB

  
  構成上的區別:

  
  每個MyISAM在磁碟上儲存成三個檔案。第一個檔案的名字以表的名字開始,副檔名指出檔案類型。

  .frm檔案儲存體表定義。

  資料檔案的副檔名為.MYD (MYData)。

  索引檔案的副檔名是.MYI (MYIndex)。

  
  基於磁碟的資源是InnoDB資料表空間資料檔案和它的記錄檔,InnoDB 表的大小隻受限於作業系統檔案的大小,一般為 2GB
  
  交易處理上方面:

  
  MyISAM類型的表強調的是效能,其執行數度比InnoDB類型更快,但是不提供事務支援

  
  InnoDB提供事務支援事務,外部鍵等進階資料庫功能

  
  SELECT   UPDATE,INSERTDelete操作
  
  如果執行大量的SELECT,MyISAM是更好的選擇

  
  1.如果你的資料執行大量的INSERTUPDATE,出於效能方面的考慮,應該使用InnoDB表

  2.DELETE   FROM table時,InnoDB不會重建立立表,而是一行一行的刪除。

  3.LOAD   TABLE FROM MASTER操作對InnoDB是不起作用的,解決方案是首先把InnoDB表改成MyISAM表,匯入資料後再改成InnoDB表,但是對於使用的額外的InnoDB特性(例如外鍵)的表不適用

  
  AUTO_INCREMENT的操作

  
  
  每表一個AUTO_INCREMEN列的內部處理。

  MyISAMINSERTUPDATE操作自動更新這一列。這使得AUTO_INCREMENT列更快(至少10%)。在序列頂的值被刪除之後就不能再利用。(當AUTO_INCREMENT列被定義為多列索引的最後一列,可以出現重使用從序列頂部刪除的值的情況)。

  AUTO_INCREMENT值可用ALTER TABLE或myisamch來重設

  對於AUTO_INCREMENT類型的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引

  更好和更快的auto_increment處理

  
  如果你為一個表指定AUTO_INCREMENT列,在資料詞典裡的InnoDB表控制代碼包含一個名為自動成長計數器的計數器,它被用在為該列賦新值。

  自動成長計數器僅被儲存在主記憶體中,而不是存在磁碟上

  關於該計算機的演算法實現,請參考

  AUTO_INCREMENT列在InnoDB裡如何工作

  
  表的具體行數
  
  select count(*) from table,MyISAM只要簡單的讀出儲存好的行數,注意的是,當count(*)語句包含   where條件時,兩種表的操作是一樣的

  
  InnoDB 中不儲存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行

  
  
  
  表鎖

  
  提供行鎖(locking on row level),提供與 Oracle 類型一致的不加鎖讀取(non-locking read in
   SELECTs),另外,InnoDB表的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like “%aaa%”

MySQL資料庫MyISAM和InnoDB儲存引擎的比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.