一:存儲引擎: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預設設定是打開的】