mysql后台线程_mysql后台线程详解

1.mysql后台线程mysql

mysql后台线程主要用于维持服务器的正常运行和完成用户提交的任务,主要包括:master thread,read thread,write thread,redo log thread,change buffer thread,page cleaner thread,purge thread,checkpoint,error monitor thread,lock monitor thread等.sql

2.mysql后台线程详解

1)master thread

Master thread优先级最高, 其内部包含几个循环:主循环(loop),后台循环(background loop),刷新循环(flush loop),暂停循环(suspend loop).master thread会根据其内部运行的相关状态在前述各循环间中进行切换.

大部分操做在主循环(loop)中完成,其包含有1s和10s两种操做.

1s操做主要包括:日志缓冲刷新到磁盘(老是,即便事务尚未提交);最多刷100个新脏页到磁盘(可能);执行和并改变缓冲的操做(可能);若当前没有用户活动,可能切换到background loop等.

10s操做主要包括:刷新100个脏页到磁盘(可能);合并至多5个改变缓冲(老是);日志缓冲刷新到磁盘(老是);删除无用的undo页(老是);刷新100个或者10个脏页到磁盘(老是)产生一个检查点(老是)等.服务器

2)read thread

read thread为mysql的读线程,默认为4个,其负责将数据页从磁盘上读入,其由innodb_read_io_threads选项控制.用户线程发起读请求并将其放至读请求队列,read threads从读请求队列获取读任务并完成.oop

3)write thread

write thread为mysql的写线程,默认为4个,其负责将数据页从缓冲区写出到磁盘,其由innodb_write_io_threads控制选项控制.page_cleaner线程发起写请求并将其放至写请求队列,write threads从写请求队列获取写任务并完成.线程

4)redo log thread

redo log thread负责把日志缓冲中的内容刷新到redo log文件中.日志

5)change buffer thread

change buffer thread负责把改变缓冲(change buffer)中的内容刷新到磁盘.索引

6)page cleaner thread

page cleaner thread是负责脏页刷新的线程,从MySQL5.7起可增长多个.队列

7)purge thread

purge thread负责删除无用的undo页.因为进行DML语句的操做都会生成undo,系统须要按期对undo页进行清理,这是须要purge操做,同时,其还对已经标记为删除但还未清理的无用clustered和secondary索引数据进行清除.mysql5.6开始,把purge thread专门从master thread中分离出来,其由innodb_purge_thread选项进行控制.默认为1个,最大能够调整为32个.事务

8)checkpoint thread

checkpoint thread负责在redo log发生切换时,执行checkpoint.it

9)error monitor thread

error monitor thread负责mysql报错的监控.

10)lock monitor thread

lock monitor thread负责mysql锁的监控.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值