1. 程式人生 > >Innodb 與 MyISAM

Innodb 與 MyISAM

一 鎖差異
MyISAM:只支援表級鎖,只支援表級鎖,使用者在操作myisam表時,select,update,delete,insert語句都會給表自動加鎖。
InnodB:支援事務和行級鎖,是innodb的最大特色。行鎖大幅度提高了多使用者併發操作的新能。但是InnoDB的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表, 例如update table set num=1 where name like “%aaa%”。

MyISAM: 如果執行大量的select, MyISAM是更好的選擇。(因為沒有支援行級鎖),在增刪的時候需要鎖定整個表格,效率會低一些。相關的是innoDB支援行級鎖,刪除插入的時候只需要鎖定該行就行,效率較高。

二 事物機制
MyISAM型別的表強調的是效能,其執行數度比InnoDB型別更快,但是不支援外來鍵、不提供事務支援。
InnoDB提供事務支援事務,外部鍵(foreign key)等高階資料庫功能。