這篇博文主要是總結關于MyISAM與InnoDB的區別
innodb和myisam是使用mysql時最常用的兩個表類型,這兩個表類型各有優劣,視具體應用而定。基本的差別為:
(1)myisam類型不支持事務處理等高級處理,而innodb類型支持事務。
(2)InnoDB支持數據行鎖定;MyISAM不支持行鎖定,只支持鎖定整個表。這里需要注意的是InnoDB表的行鎖也不是絕對的,假如在執行一個sql語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like “%aaa%”
(3)InnoDB支持外鍵,MyISAM不支持。
(4)InnoDB 中不保存表的具體行數,也就是說,執行select count() from table時,InnoDB要掃描一遍整個表來計算有多少行。但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count()語句包含 where條件時,兩種表的操作是一樣的。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END