溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

什么是mysql后臺線程

發(fā)布時間:2021-10-11 10:21:46 來源:億速云 閱讀:136 作者:柒染 欄目:MySQL數(shù)據(jù)庫

什么是mysql后臺線程,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.mysql后臺線程

mysql后臺線程主要用于維持服務(wù)器的正常運(yùn)行和完成用戶提交的任務(wù),主要包括:master thread,read thread,write thread,redo log thread,change buffer thread,page cleaner thread,purge thread,checkpoint,error monitor thread,lock monitor thread等.

2.mysql后臺線程詳解
1)master thread
Master thread優(yōu)先級最高, 其內(nèi)部包含幾個循環(huán):主循環(huán)(loop),后臺循環(huán)(background loop),刷新循環(huán)(flush loop),暫停循環(huán)(suspend loop).master thread會根據(jù)其內(nèi)部運(yùn)行的相關(guān)狀態(tài)在前述各循環(huán)間中進(jìn)行切換.
大部分操作在主循環(huán)(loop)中完成,其包含有1s和10s兩種操作.
1s操作主要包括:日志緩沖刷新到磁盤(總是,即使事務(wù)還沒有提交);最多刷100個新臟頁到磁盤(可能);執(zhí)行和并改變緩沖的操作(可能);若當(dāng)前沒有用戶活動,可能切換到background loop等.
10s操作主要包括:刷新100個臟頁到磁盤(可能);合并至多5個改變緩沖(總是);日志緩沖刷新到磁盤(總是);刪除無用的undo頁(總是);刷新100個或者10個臟頁到磁盤(總是)產(chǎn)生一個檢查點(diǎn)(總是)等.

2)read thread
read thread為mysql的讀線程,默認(rèn)為4個,其負(fù)責(zé)將數(shù)據(jù)頁從磁盤上讀入,其由innodb_read_io_threads選項(xiàng)控制.用戶線程發(fā)起讀請求并將其放至讀請求隊(duì)列,read threads從讀請求隊(duì)列獲取讀任務(wù)并完成.

3)write thread
write thread為mysql的寫線程,默認(rèn)為4個,其負(fù)責(zé)將數(shù)據(jù)頁從緩沖區(qū)寫出到磁盤,其由innodb_write_io_threads控制選項(xiàng)控制.page_cleaner線程發(fā)起寫請求并將其放至寫請求隊(duì)列,write threads從寫請求隊(duì)列獲取寫任務(wù)并完成.

4)redo log thread
redo log thread負(fù)責(zé)把日志緩沖中的內(nèi)容刷新到redo log文件中.

5)change buffer thread
change buffer thread負(fù)責(zé)把改變緩沖(change buffer)中的內(nèi)容刷新到磁盤.

6)page cleaner thread
page cleaner thread是負(fù)責(zé)臟頁刷新的線程,從MySQL5.7起可增加多個.

7)purge thread
purge thread負(fù)責(zé)刪除無用的undo頁.由于進(jìn)行DML語句的操作都會生成undo,系統(tǒng)需要定期對undo頁進(jìn)行清理,這是需要purge操作,同時,其還對已經(jīng)標(biāo)記為刪除但還未清理的無用clustered和secondary索引數(shù)據(jù)進(jìn)行清除.mysql5.6開始,把purge thread專門從master thread中分離出來,其由innodb_purge_thread選項(xiàng)進(jìn)行控制.默認(rèn)為1個,最大可以調(diào)整為32個.

8)checkpoint thread
checkpoint thread負(fù)責(zé)在redo log發(fā)生切換時,執(zhí)行checkpoint.

9)error monitor thread
error monitor thread負(fù)責(zé)mysql報錯的監(jiān)控.

10)lock monitor thread
lock monitor thread負(fù)責(zé)mysql鎖的監(jiān)控.

看完上述內(nèi)容,你們掌握什么是mysql后臺線程的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI