在 mysql 中使用最為廣泛的除了 myisam 之外,就非 innodb 莫屬了。innodb 做為第三方公司所開發的存儲引擎,和 mysql 遵守相同的開源 license 協議。
Innodb 之所以能如此受寵,主要是在于其功能方面的較多特點:
1、支持事務安裝
Innodb 在功能方面最重要的一點就是對事務安全的支持,這無疑是讓 Innodb 成為 MySQL最為流行的存儲引擎之一的一個非常重要原因。而且實現了 SQL92 標準所定義的所有四個級別(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和 SERIALIZABLE)。對事務安全的支持,無疑讓很多之前因為特殊業務要求而不得不放棄使用 MySQL 的用戶轉向支持
MySQL,以及之前對數據庫選型持觀望態度的用戶,也大大增加了對 MySQL 好感。
2、數據多版本讀取
Innodb 在事務支持的同時,為了保證數據的一致性已經并發時候的性能,通過對 undo信息,實現了數據的多版本讀取。
3、鎖定機制的改進
Innodb 改變了 MyISAM 的鎖機制,實現了行鎖。雖然 Innodb 的行鎖機制的實現是通過索引來完成的,但畢竟在數據庫中 99%的 SQL 語句都是要使用索引來做檢索數據的。所以,行鎖定機制也無疑為 Innodb 在承受高并發壓力的環境下增強了不小的競爭力。
4、實現外鍵
Innodb 實現了外鍵引用這一數據庫的重要特性,使在數據庫端控制部分數據的完整性成為可能。雖然很多數據庫系統調優專家都建議不要這樣做,但是對于不少用戶來說在數據庫端加如外鍵控制可能仍然是成本最低的選擇。
除了以上幾個功能上面的亮點之外,Innodb 還有很多其他一些功能特色常常帶給使用者不小的驚喜,同時也為 MySQL 帶來了更多的客戶。在物理存儲方賣弄, Innodb 存儲引擎也和 MyISAM 不太一樣,雖然也有.frm 文件來存放表結構定義相關的元數據,但是表數據和索引數據是存放在一起的。至于是每個表單獨存放還是所有表存放在一起,完全由用戶來決定(通過特定配置),同時還支持符號鏈接。
?以上就是Mysql存儲引擎之Innodb存儲引擎的介紹的內容,更多相關內容請關注PHP中文網(www.php.cn)!