首頁  >  文章  >  資料庫  >  高效能MySQL-儲存引擎MyISAM與InnoDB基本差異介紹

高效能MySQL-儲存引擎MyISAM與InnoDB基本差異介紹

黄舟
黄舟原創
2017-03-15 17:19:251657瀏覽


這篇部落格文章主要是總結關於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條件時,兩種表的運算是一樣的。

以上是高效能MySQL-儲存引擎MyISAM與InnoDB基本差異介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn