2018-10-18
閱讀量:
1029
MySQL中MyISAM與InnoDB區(qū)別及選擇
剛開始學(xué)MySQL的時候,會看到老師說主要使用兩種引擎:InnoDB和MyISAM,那么兩種引擎有什么區(qū)別呢?
InnoDB:
支持事務(wù)處理等
不加鎖讀取
支持外鍵
支持行鎖
不支持FULLTEXT類型的索引
不保存表的具體行數(shù),掃描表來計算有多少行
DELETE 表時,是一行一行的刪除
InnoDB 把數(shù)據(jù)和索引存放在表空間里面
跨平臺可直接拷貝使用
InnoDB中必須包含AUTO_INCREMENT類型字段的索引
表格很難被壓縮
MyISAM:
不支持事務(wù),回滾將造成不完全回滾,不具有原子性
不支持外鍵
不支持外鍵
支持全文搜索
保存表的具體行數(shù),不帶where時,直接返回保存的行數(shù)
DELETE 表時,先drop表,然后重建表
MyISAM 表被存放在三個文件 。frm 文件存放表格定義。 數(shù)據(jù)文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸
跨平臺很難直接拷貝
MyISAM中可以使AUTO_INCREMENT類型字段建立聯(lián)合索引
表格可以被壓縮
選擇:
因為MyISAM相對簡單所以在效率上要優(yōu)于InnoDB.如果系統(tǒng)讀多,寫少。對原子性要求低。那么MyISAM最好的選擇。且MyISAM恢復(fù)速度快。可直接用備份覆蓋恢復(fù)。
如果系統(tǒng)讀少,寫多的時候,尤其是并發(fā)寫入高的時候。InnoDB就是首選了。
兩種類型都有自己優(yōu)缺點,選擇那個完全要看自己的實際類弄。






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論
0條評論