您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關mysql是不是多線程的,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
mysql是多線程的。mysql是一個單進程多線程的數據庫,在innodb中大概3種線程為:1、主線程Master Thread;2、IO Thread線程,用于異步處理寫請求;3、purge Thread線程,用于刪除undo日志。
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是不是多線程的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。