2.1 InnoDB儲存引擎概述
InnoDB從MySQL5.5版本開始是預設的表儲存引擎,是第一個完整支援ACID事務的MySQL儲存引擎
特點是行鎖設計、支援MVCC、支援外來鍵、提供一致性非鎖定讀,同時被設計用來最有效利用以及使用記憶體的CPU
2.2 InnoDB儲存引擎的版本
InnoDB儲存引擎包含於所有MySQL資料庫的二進位制發行版本中
從MySQL5.1版本時,MySQL資料庫允許儲存引擎開發商以動態方式載入引擎,所以在5.1版本中,可以支援兩個版本的InnoDB:一個是靜態編譯的InnoDB版本可視為老版本的InnodDB;另一個是動態載入的InnoDB版本(官方稱為Innodb plugin,InnoDB 1.0.x版本)
2.3 InnoDB體系架構
InnoDB的架構由記憶體池和後臺執行緒構成
InnoDB儲存引擎有多個記憶體塊,這些記憶體塊組成了一個大的記憶體池負責如下工作:
- 維護所有程序/執行緒需要訪問的多個內部資料結構
- 快取磁碟上的資料,方便快速讀取,同時在對磁碟檔案的資料修改之前在這裡快取
- 重做日誌緩衝
- ....
後臺執行緒的主要作用是負責重新整理記憶體池中的資料,保證快取池中的記憶體快取的是最新的資料,此外將已修改的資料檔案重新整理到磁碟檔案,同時保證在資料庫發生異常情況下InnoDB能恢復到正常執行狀態