首頁  >  文章  >  資料庫  >  mysql是單線程還是多線程?

mysql是單線程還是多線程?

青灯夜游
青灯夜游原創
2020-09-28 09:58:467315瀏覽

mysql是多執行緒的。 mysql是單一流程多執行緒的資料庫,在innodb大概3種線程為:1、主線程Master Thread;2、IO Thread線程,用於非同步處理寫入請求;3、purge Thread線程,用於刪除undo日誌。

mysql是單線程還是多線程?

(推薦教學:mysql影片教學

mysql是一個單一行程多執行緒的資料庫,在innodb中大概有以下幾種線程:

(1)Master Thread:這是主線程,非常核心,其用途主要是做一些週期性的任務,在不同的innodb版本其功能不同,這裡就看最早的版本。早起的innodb Master線程會有兩種頻率的任務,一種是每1秒一次的,還有每10秒一次的。

每1秒的工作:

1、刷新日誌;

2、刷新至多100個髒頁

3、合併插入緩衝;

4、如果空閒切為background。

其實最主要的還是前兩個。而且只有刷新日誌是每次必做的,其餘都是需要滿足條件才會做,比如說刷新髒頁,只有快取中的髒頁比例超過一個閾值才會刷新。

每10秒的工作:

1.刷新日誌;

2.刷新髒頁;

3.刪除undo日誌;

4.合併插入緩衝

(2)IO Thread:主要用於非同步處理寫入請求。

(3)purge Thread:用於刪除undo日誌,這是後續的innodb版本,才將這個事情從Master線程中獨立出來了。

最後再上一個innodb的記憶體圖:

mysql是單線程還是多線程?

#相關推薦:php訓練

以上是mysql是單線程還是多線程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn