設計上採用了類似於oracle資料庫的架構
接下來 詳細介紹 innodb 儲存引擎的 體系架構 及其不同於其他儲存引擎的特性
一 概述
innodb 儲存引擎 是第乙個完整支援acid事物的 mysql 儲存引擎
特點: 1 行鎖設計
2 支援mvcc
3 提供一致性非鎖定讀
4 最有效地利用 以及 使用記憶體和cpu,記憶體 體現在魯棒性lru、寫先寫快取 再刷日誌 再寫磁碟 cpu?
二mysql 儲存引擎的版本:
版本功能
old innodb
支援四種隔離級別acid、行鎖、mvcc
1.0.x
繼承上一版本功能,增加了compress 以及 dynamic 頁格式
1.1.x
繼承上一版本功能,增加了linux aio、多回滾段
1.2.x
三innodb 體系架構
上圖位innodb儲存引擎體系架構,innodb 儲存引擎有多個記憶體塊,組成了乙個大的記憶體池,提供了以下能力:
1 維護 所有程序/執行緒 需要訪問的 多個內部資料結構
2 快取 磁碟上的資料,方便快速讀取,在對磁碟檔案資料進行修改之前先更新快取
3 重做日誌 redo log 緩衝
後台執行緒作用:
1 重新整理記憶體池中的資料,確保記憶體中快取的 是最近的資料
2 將已經修改的資料檔案 重新整理到磁碟檔案
3 確保資料庫在發生異常情況下 能恢復到正常執行狀態
InnoDB 儲存引擎
innodb是事務型資料庫的首選引擎,支援事務安全表 acid 支援行鎖定和外來鍵。mysql 5.5.5 之後,innodb作為預設儲存引擎。innodb的主要特性有一下幾項。a.innodb給mysql提供了具有提交 回滾和崩潰恢復能力的事務安全 acid相容 儲存引擎。innodb鎖定在行級並...
InnoDB儲存引擎
內外存交換的基本單位 mysql將資料從外存讀入記憶體不是以記錄為單位,這樣消耗太大,是以頁為單位,每個頁裡填充記錄。每頁大小為16kb。記錄堆 行記錄儲存區,分為有效記錄和已刪除記錄兩種 自由空間鍊錶 已刪除記錄組成的鍊錶 未分配空間 頁尾 儲存頁面校驗資訊 頁內的資料是按照主鍵的順序有序儲存的。...
InnoDB儲存引擎
後台程序 innodb緩衝池 磁碟檔案 主要是負責重新整理快取池裡的資料,保證緩衝池中的資料是最近的。master thread 將緩衝池中的資料非同步重新整理到磁碟中,保證資料的一致性。io thread 使用大量的aio進行io呼叫,處理io請求 innodb write io threads ...