1. 程式人生 > 其它 >Mysql - 兩種儲存引擎的區別

Mysql - 兩種儲存引擎的區別

InnoDb:

  1、支援ACID的事務,支援事務的四種隔離級別;

  2、支援行級鎖及外來鍵約束:因此可以支援寫併發;

  3、不儲存總行數;

  4、一個InnoDb引擎儲存在一個檔案空間(共享表空間,表大小不受作業系統控制,一個表可能分佈在多個檔案裡),也有可能為多個(設定為獨立表空,表大小受作業系統檔案大小限制,一般為2G),受作業系統檔案大小的限制;

  5、主鍵索引採用聚集索引(索引的資料域儲存資料檔案本身),輔索引的資料域儲存主鍵的值;因此從輔索引查詢資料,需要先通過輔索引找到主鍵值,再訪問輔索引;最好使用自增主鍵,防止插入資料時,為維持B+樹結構,檔案的大調整。

MyISAM:

  1、不支援事務,但是每次查詢都是原子的;

  2、支援表級鎖,即每次操作是對整個表加鎖;

  3、儲存表的總行數;

  4、一個MYISAM表有三個檔案:索引檔案、表結構檔案、資料檔案;

  5、採用非聚集索引,索引檔案的資料域儲存指向資料檔案的指標。輔索引與主索引基本一致,但是輔索引不用保證唯一性。