MySQL中MyISAM與InnoDB區別及選擇

InnoDB:

支持事務處理等

不加鎖讀取

支持外鍵

支持行鎖

不支持FULLTEXT類型的索引

不保存表的具體行數,掃描表來計算有多少行

DELETE 表時,是一行一行的刪除

InnoDB 把數據和索引存放在表空間裡面

跨平臺可直接拷貝使用

InnoDB中必須包含AUTO_INCREMENT類型字段的索引

表格很難被壓縮

MyISAM:

不支持事務,回滾將造成不完全回滾,不具有原子性

不支持外鍵

不支持外鍵

支持全文搜索

保存表的具體行數,不帶where時,直接返回保存的行數

DELETE 表時,先drop表,然後重建表

MyISAM 表被存放在三個文件 。frm 文件存放表格定義。 數據文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸

跨平臺很難直接拷貝

MyISAM中可以使AUTO_INCREMENT類型字段建立聯合索引

表格可以被壓縮

選擇:

因為MyISAM相對簡單所以在效率上要優於InnoDB.如果系統讀多,寫少。對原子性要求低。那麼MyISAM最好的選擇。且MyISAM恢復速度快。可直接用備份覆蓋恢復。

如果系統讀少,寫多的時候,尤其是併發寫入高的時候。InnoDB就是首選了。

兩種類型都有自己優缺點,選擇那個完全要看自己的實際類弄。


分享到:


相關文章: