mysql后台线程是什么

分类:编程技术 时间:2024-02-20 15:40 浏览:0 评论:0
0
MySQL后台线程是什么?相信很多没有经验的人都一头雾水。本文总结了问题的原因和解决方案。通过这篇文章,希望你能解决这个问题。

1.mysql后台线程

Mysql后台线程主要用来维持服务器的正常运行,完成用户提交的任务,主要包括:master线程、read线程、写入线程、重做日志线程、更改缓冲区线程、页面清理线程、清除线程、检查点、错误监视器线程、锁定监视器线程等。

2. mysql后台线程详解
1)主线程
主线程优先级最高,包含几个循环:主循环、后台循环、flush循环、挂起循环。主线程会根据其内部操作的相关状态在上述循环之间进行切换。
大部分操作都是在主循环(loop)中完成的,其中包括两个操作:1s和10s。
1s操作主要包括:将日志缓冲区刷新到磁盘(始终,即使事务尚未提交);将最多 100 个新的脏页刷新到磁盘(可能);执行和更改缓冲区操作(可能);
10s操作主要包括:将100个脏页刷新到磁盘(可能);合并最多 5 个更改缓冲区(始终);将日志缓冲区刷新到磁盘(始终);删除无用的撤消页面(总是);刷新100或10个脏页到磁盘(总是)生成检查点(总是)等

2)读线程
读线程是mysql的读线程,默认是4个,分别负责用于从磁盘读取数据页,由 innodb_read_io_threads 选项控制。用户线程发起读请求并放入读请求队列,读线程从读请求队列获取读任务并完成。

3)写入线程
write线程是mysql的写入线程,默认为4,它负责将数据页从缓冲区写入磁盘,由innodb_write_io_threads控制选项控制。 page_cleaner线程发起写​​请求并放入写请求队列,写线程从写请求队列获取写任务并完成。

4)重做日志线程
重做日志线程负责用于将日志缓冲区中的内容刷新到重做日志文件。

5)更改缓冲区线程
更改缓冲区线程负责将更改缓冲区的内容刷新到磁盘。

6)页面清理线程
页面清理线程是负责刷新脏页的线程。从MySQL5.7开始,可以添加多个线程。

7)purge线程
purge线程负责删除无用的undo页。由于DML语句的操作会产生undo,所以系统需要定期清理undo页,从而重新需要清除操作。同时,还会清除那些已标记为删除但尚未清理干净的无用聚集索引和二级索引数据。从6开始,purge线程专门与master线程分离,由innodb_purge_thread选项控制。默认为1,最大可调整为32。

8) checkpoint thread
checkpoint thread 负责在redo log切换时执行checkpoint。

9 ) 错误监控线程
错误监控线程负责监控mysql的错误。

10) 锁监控线程
锁监控线程负责监控mysql的锁。

< p class="introduction">看完上面的内容,你是否掌握了mysql后台线程的方法呢?如果您想学习更多技能或者想了解更多相关内容,请关注行业资讯频道。感谢您的阅读!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > mysql后台线程是什么

用户评论