InnoDB體系架構(一)後台執行緒

2022-07-15 05:45:08 字數 1237 閱讀 3365

innodb體系架構——後台執行緒

innodb儲存引擎是多執行緒的模型,所以猶太有多個不同的後台執行緒,負責處理不同的任務,主要有:master thread、io thread、purge thread、page cleaner thread四種。

從上面圖可以簡單的了解innodb儲存引擎有多個記憶體塊。而後台執行緒的主要工作是負責處理(重新整理)記憶體池中的資料,保證緩衝池中記憶體緩衝的是最新的資料。此外會將已修改的資料檔案更新至磁碟檔案,同時保證在資料庫發生異常情況下,innodb能恢復到正常執行狀態。

一、master thread

master thread 是核心的後台執行緒,innodb儲存引擎的主要工作都是由master thread 完成的。master thread的執行緒優先級別是最高,主要負責將緩衝池中的資料非同步重新整理到磁碟,包括髒頁的重新整理、合併插入緩衝(insert buffer)、回滾頁(undo page)的**。

二、io thread

在innodb儲存引擎中大量使用aio來處理io請求,而io thread主要負責處理這些 io 請求的**(call back) 

預設情況下,innodb儲存引擎的後台執行緒有10個:

四個read thread

四個write thread

乙個insert buffer thread

乙個log thread

可以通過 show engine innodb status 命令檢視

三、purge thread

事務被提交後,,purgethread用來** undolog(可能不再需要了)。

innodb1.2+開始,支援多個purge thread 這樣做的目的為了加快**undo頁(釋放記憶體)。

四、page cleaner thread

page cleaner thread 在innodb1.2+新加入的,其作用是將之前版本中髒頁的重新整理操作都放入單獨的執行緒中來完成,這樣減輕了 master thread 的工作及對於使用者查詢執行緒的阻塞。

參考:《mysql技術內幕 innodb儲存引擎》 第2版

innodb 體系架構

innodb儲存引擎的體系架構,可簡單劃分成三層 資料檔案 磁碟上的資料檔案 記憶體池 快取磁碟上的資料,方便讀取,同時在對磁碟檔案資料修改之前在這裡快取,然後按一定規重新整理到磁碟 後台執行緒 主要負責重新整理記憶體池中的資料,保證記憶體池中都是最近資料。同時將記憶體中修改的資料重新整理到磁碟 磁...

InnoDB體系架構

reference innodb主要包括了記憶體池 後台執行緒以及儲存檔案。記憶體池又是由多個記憶體塊組成的,主要包括快取磁碟資料 redo log緩衝等 後台執行緒則包括了master thread io thread以及purge thread等 由innodb儲存引擎實現的表的儲存結構檔案一般...

InnoDB體系架構總結(一)

緩衝池 是一塊記憶體區域,通過記憶體的速度來彌補磁碟速度較慢對資料庫效能的影響。在資料庫中讀取的頁資料會存放到緩衝池中,下次再讀取相同頁的時候,會首先判斷 該頁是否在緩衝池中。對於資料庫中頁的修改操作,會首先修改在緩衝池中的頁,然後再以一定的頻率重新整理到磁碟上。緩衝池中快取的資料頁有 索引頁,資料...