mysql是多執行緒的。 mysql是單一流程多執行緒的資料庫,在innodb大概3種線程為:1、主線程Master Thread;2、IO Thread線程,用於非同步處理寫入請求;3、purge Thread線程,用於刪除undo日誌。
(推薦教學: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的記憶體圖:
#相關推薦:php訓練
以上是mysql是單線程還是多線程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!