1. 程式人生 > 實用技巧 >MyISAM和InnoDB的區別

MyISAM和InnoDB的區別

1. 檢視MySql資料庫物理檔案存放位置

在這裡插入圖片描述

2. MyISAM儲存引擎特點

MySql預設是InnoDB引擎,這裡建立一個表設定儲存引擎為Myisma

在這裡插入圖片描述
然後檢視資料庫表文件
在這裡插入圖片描述
可以看到資料檔案和索引檔案是分開儲存的,平均分佈I/O,獲得更快的速度。

特點:

  1. 不支援事務,不支援外來鍵約束,但支援全文索引
  2. 只支援表級鎖定,雖然可以讓鎖實現的成本很小,但大大降低了併發效能。
  3. 讀寫相互阻塞:讀取的時候阻塞寫入,寫入的時候阻塞讀取,但讀取時不會阻塞其他讀取。
  4. 不快取資料檔案,只快取索引檔案。
  5. 讀取速度較快,佔用資源相對較少
  6. MYISAM引擎是MySQL5.5之前的預設儲存引擎
  7. 併發量小,不適合大量update

MyISAM適用場景:

  1. 不需要事務支援的業務,一般是讀資料比較多的網站應用
  2. 併發相對較低的,對資料一致性要求不高
  3. 資料修改較少,以讀為主的業務

3. InnoDB儲存引擎特點

InnoDB型別的表只有idb檔案,分為資料區和索引區。
在這裡插入圖片描述
InnoDB引擎特點:

  1. 支援事務:包括ACID事務支援,4種事務隔離級別,支援多版本讀取
  2. 支援行級鎖定
  3. 支援崩潰修復能力和MVCC
  4. 讀寫阻塞與事務隔離級別有關
  5. 能快取資料,也能快取索引
  6. 支援外來鍵約束
  7. 支援自增(auto_increment)