Mysql儲存引擎中InnoDB與Myisam的區別

來源:互聯網
上載者:User

標籤:

1. 交易處理innodb 支援事務功能,myisam 不支援。
Myisam 的執行速度更快,效能更好。

2. select ,update ,insert ,delete 操作MyISAM:如果執行大量的SELECT,MyISAM是更好的選擇
InnoDB:如果你的資料執行大量的INSERT或UPDATE,出於效能方面的考慮,應該使用InnoDB表
3. 鎖機制不同

InnoDB 為行級鎖,myisam 為表級鎖。

注意:當資料庫無法確定,所找的行時,也會變為鎖定整個表。
如: update table set num = 10 where username like "%test%";
4. 查詢表的行數不同MyISAM:select count(*) from table,MyISAM只要簡單的讀出儲存好的行數,注意的是,當count(*)語句包含   where條件時,兩種表的操作是一樣的

InnoDB : InnoDB 中不儲存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行
5. 物理結構不同MyISAM :每個MyISAM在磁碟上儲存成三個檔案。第一個檔案的名字以表的名字開始,副檔名指出檔案類型。
  .frm檔案儲存體表定義。
  資料檔案的副檔名為.MYD (MYData)。
  索引檔案的副檔名是.MYI (MYIndex)


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

6. anto_increment 機制不同 更好和更快的auto_increment處理
其他:為什麼MyISAM會比Innodb 的查詢速度快。INNODB在做SELECT的時候,要維護的東西比MYISAM引擎多很多; 
1)資料區塊,INNODB要緩衝,MYISAM只緩衝索引塊,  這中間還有換進換出的減少;  
2)innodb定址要映射到塊,再到行,MYISAM 記錄的直接是檔案的OFFSET,定位比INNODB要快 
3)INNODB還需要維護MVCC一致;雖然你的情境沒有,但他還是需要去檢查和維護

Mysql儲存引擎中InnoDB與Myisam的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.