MyISAM與innoDB的主要區別

主要區別:

1).[事務]MyISAM是非事務安全型的,而InnoDB是事務安全型的,默認開啓自動提交,宜合併事務,一同提交,減小數據庫多次提交導致的開銷,大大提高性能。
2).[鎖]MyISAM鎖的粒度是表級,而InnoDB支持行級鎖定。
3).[全文索引]MyISAM支持全文類型索引,而InnoDB不支持全文索引。
4).[查詢效率]MyISAM相對簡單,所以在效率上要優於InnoDB,小型應用可以考慮使用MyISAM。
5).[外健]MyISAM不支持外健,InnoDB支持。
6).[count]MyISAM保有表的總行數,InnoDB只能遍歷。
6).MyISAM表是保存成文件的形式,在跨平臺的數據轉移中使用MyISAM存儲會省去不少的麻煩。
7).InnoDB表比MyISAM表更安全,可以在保證數據不會丟失的情況下,切換非事務表到事務表(alter table tablename type=innodb)。
8)MyIsam索引和數據分離,InnoDB在一起,MyIsam天生非聚簇索引,最多有一個unique的性質,InnoDB的數據文件本身就是主鍵索引文件,這樣的索引被稱爲“聚簇索引”
具體見:https://blog.csdn.net/silyvin/article/details/80140153

9)InnoDB提供多版本數據支持 https://blog.csdn.net/zhangliangzi/article/details/51379274,MyIsam不支持
10)兩者都僅支持B+樹索引,不支持hash索引

應用場景:

1).MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。如果應用中需要執行大量的SELECT查詢,那麼MyISAM是更好的選擇。
2).InnoDB用於事務處理應用程序,具有衆多特性,包括ACID事務支持。如果應用中需要執行大量的INSERT或UPDATE操作,則應該使用InnoDB,這樣可以提高多用戶併發操作的性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章