InnoDB体系架构 后台线程

本文探讨了MySQL InnoDB存储引擎的体系架构,重点关注其后台线程的角色,如Master Thread负责数据一致性,IO Thread处理AIO写IO请求,Purge Thread回收Undo页,以及Page Cleaner Thread减轻Master Thread负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      学习了一段MySQL之后,感觉到很多东西不深入理解存储引擎无法更好的进行数据库的设计和使用,所以记录下所学的东西,方便自己和他人。

InnoDB的存储引擎的架构体系如下图所示(图片来自MySQL技术内幕):

从图中我们可以清楚的看到InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责一下的工作:

      1.维护所有进程/线程需要访问的多个内部数据结构;

      2.缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据修改之前在这里缓存;

      3.重做日志(redo log)缓存。

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文件刷新到磁盘文件中,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行状态。

1.后台线程:

         Master Thread:Master Thread是一个非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓存(INSERT BUFFER)UNDO页的回收等。

         IO Thread:由于InnoDB存储引擎中大量使用了AIO来处理写IO请求,所以该线程的主要工作时负责这些IO请求的回调处理。一共有四种IO Thread,分别是write thread、read thread、insert buffer thread和log thread,我们可以再数据库中运行一下命令来查看具体的配置:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值