MyISAM和InnoDB的區別
阿新 • • 發佈:2020-10-09
1. 檢視MySql資料庫物理檔案存放位置
2. MyISAM儲存引擎特點
MySql預設是InnoDB引擎,這裡建立一個表設定儲存引擎為Myisma
然後檢視資料庫表文件
可以看到資料檔案和索引檔案是分開儲存的,平均分佈I/O,獲得更快的速度。
特點:
- 不支援事務,不支援外來鍵約束,但支援全文索引
- 只支援表級鎖定,雖然可以讓鎖實現的成本很小,但大大降低了併發效能。
- 讀寫相互阻塞:讀取的時候阻塞寫入,寫入的時候阻塞讀取,但讀取時不會阻塞其他讀取。
- 不快取資料檔案,只快取索引檔案。
- 讀取速度較快,佔用資源相對較少
- MYISAM引擎是MySQL5.5之前的預設儲存引擎
- 併發量小,不適合大量update
MyISAM適用場景:
- 不需要事務支援的業務,一般是讀資料比較多的網站應用
- 併發相對較低的,對資料一致性要求不高
- 資料修改較少,以讀為主的業務
3. InnoDB儲存引擎特點
InnoDB型別的表只有idb檔案,分為資料區和索引區。
InnoDB引擎特點:
- 支援事務:包括ACID事務支援,4種事務隔離級別,支援多版本讀取
- 支援行級鎖定
- 支援崩潰修復能力和MVCC
- 讀寫阻塞與事務隔離級別有關
- 能快取資料,也能快取索引
- 支援外來鍵約束
- 支援自增(auto_increment)