數據庫系列課程(16)-MyISAM和InnoDB的區別

InnoDB MyISAM
⽀持事務處理 不⽀持事務,回滾將造成不完全回滾,不具有原⼦性
⽀持外鍵 不⽀持外鍵
⽀持⾏鎖 ⽀持全⽂搜索
不⽀持FULLTEXT類型的索引(在Mysql5.6已引⼊)
不保存表的具體⾏數,掃描表來計算有多少⾏ 保存表的具體⾏數,不帶where時,直接返回保存的⾏數
對於AUTO_INCREMENT類型的字段,必須包含只有該字段的索引
DELETE 表時,是⼀⾏⼀⾏的刪除 DELETE 表時,先drop表,然後重建表
InnoDB 把數據和索引存放在表空間⾥⾯ MyISAM 表被存放在三個⽂件 。frm ⽂件存放表格定義。 數據⽂件是MYD (MYData) 。 索引⽂件是MYI(MYIndex)引伸 。
跨平臺可直接拷⻉使⽤ 跨平臺很難直接拷⻉
表格很難被壓縮 表格可以被壓縮
AUTO_INCREMENT類型字段可以和其他字段⼀起建⽴聯合索引

如何選擇:

  • 因爲MyISAM相對簡單所以在效率上要優於InnoDB,如果系統讀多,寫少,對原⼦性要求低,那麼MyISAM最好的選擇,且MyISAM恢復速度快,可直接⽤備份覆蓋恢復。
  • 如果系統讀少,寫多的時候,尤其是併發寫⼊⾼的時候,InnoDB就是⾸選了。

兩種類型都有⾃⼰優缺點,選擇那個完全要看⾃⼰的實際情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章