天天看點

MySQL存儲引擎:InnoDB和MyISAM的差別和比較

一:存儲引擎:InnoDB和MyISAM的差別

1、InnoDB支援事務,MyISAM不支援,這一點是非常之重要。事務是一種進階的處理方式,如在一些列增删改中隻要哪個出錯還可以復原還原,而MyISAM就不可以了。

2、MyISAM适合查詢以及插入為主的應用,InnoDB适合頻繁修改以及涉及到安全性較高的應用

3、InnoDB支援外鍵,MyISAM不支援

4、MyISAM是預設引擎,InnoDB需要指定

5、InnoDB不支援FULLTEXT類型的索引

6、InnoDB中不儲存表的行數,如select count(*) from table時,InnoDB需要掃描一遍整個表來計算有多少行,但是MyISAM隻要簡單的讀出儲存好的行數即可。注意的是,當count(*)語句包含where條件時MyISAM也需要掃描整個表

7、對于自增長的字段,InnoDB中必須包含隻有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯合索引

8、清空整個表時,InnoDB是一行一行的删除,效率非常慢。MyISAM則會重建表

9、InnoDB支援行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'

二:存儲引擎:InnoDB和MyISAM的比較

MyISAM存儲引擎:

優點:查詢資料相對較快,适合大量的select,可以全文索引。

缺點:不支援事務,不支援外鍵,并發量較小,不适合大量update

InnoDB存儲引擎:

優點:支援事務,支援外鍵,并發量較大,适合大量update

缺點:查詢資料相對較面,不适合大量的select【影響速度的主要原因是AUTOCOMMIT預設設定是打開的】

繼續閱讀