概述
在MySQL中,存在有各种各样的线程,每种线程又各有各自的功能
复制
线程划分
我们可以通过show engine innodb status\G来查看mysql中的线程
----------------- BACKGROUND THREAD ----------------- srv_master_thread loops: 4 srv_active, 0 srv_shutdown, 120974 srv_idle srv_master_thread log flush and writes: 120978
复制
首先是主线程,master线程每秒会定时执行一次。
srv_active:主线程active的状态,每当有更新、删除、插入,数据表相关的操作的时候,就会增加
srv_shutdown:在shutdown时增加
srv_idle:线程空闲时增加
log flush and writes:主线程定期刷新redo日志,和参数innodb_flush_log_at_timeout有关,控制刷新时间
-------- FILE I/O -------- I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state: waiting for i/o request (log thread) I/O thread 2 state: waiting for i/o request (read thread) I/O thread 3 state: waiting for i/o request (read thread) I/O thread 4 state: waiting for i/o request (read thread) I/O thread 5 state: waiting for i/o request (read thread) I/O thread 6 state: waiting for i/o request (write thread) I/O thread 7 state: waiting for i/o request (write thread) I/O thread 8 state: waiting for i/o request (write thread) I/O thread 9 state: waiting for i/o request (write thread)
复制
其次是io线程,对于大多数的io线程来说,在刷新到硬盘数据时,都是使用fsync()来同步刷新
这些线程有插入缓冲线程,主要管理内存中的增删改和索引合并数据,在等到一个合适的机会刷新到硬盘。日志缓冲刷新线程,和innodb_flush_log_at_timeout有关。读写的io线程,是最基本的线程
Purge线程:主要用来清理undo log,可以通过参数innodb_purge_threads来设置线程数。在undo表空间满的时候,或无法为当前事物分配undo slot的时候,会执行truncate操作。
最后是刷脏线程,由参数innodb_page_cleaners控制线程数。
总体来说,所有的线程数最好不要超过cpu核心数,否则cpu会进行时间分片,后果就是严重的性能下降
最后修改时间:2020-07-19 21:38:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
墨天轮个人数说知识点合集
JiekeXu
441次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
426次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
388次阅读
2025-03-28 16:28:31
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
360次阅读
2025-04-25 15:30:58
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
354次阅读
2025-04-15 23:49:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
353次阅读
2025-04-17 17:02:24
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
329次阅读
2025-04-15 14:48:05
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
324次阅读
2025-04-25 18:53:11
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
307次阅读
2025-03-27 16:45:26
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
294次阅读
2025-04-07 12:14:29