InnoDB 儲存引擎

2021-10-01 12:30:57 字數 822 閱讀 1170

設計上採用了類似於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 ...