InnoDB存储引擎包含多个内存块,多个内存块组合成一个大的内存池

负责的主要工作:

——维护线程需要访问的多个内部数据结构

——缓存磁盘上的数据,方便快速的读取,同时对磁盘文件的修改之前在内存池中缓存

——重做日志(redo log)缓冲

InnoDB 体系架构-后台线程

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存是最近的数据。此外,将已修改的数据文件刷新到磁盘文件中,同时保证出现异常时能够恢复到正常状态

InnoDB是多线程的模型,后台的线程主要有几大类

——Master Thread

Master Thread是一个核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新,合并插入缓冲,undo页的回收

——IO Thread

在InnoDb存储引擎中大量使用Async IO来处理IO的请求,可以极大提高数据库的性能。而IO Thread的主要工作是负责IO请求的回调处理。较早之前版本有4个IO Thread 分别是write , read , insert buffer,log IO Thread

——Purge Thread

事务被提交后,其所使用的undolog可能不再需要,因此需要Purge Thread来及时回收已经分配的undo页。

——Page Cleaner Thread

Page Cleaner Thread为高版本InnoDB引擎引入,其作用是将之前版本的脏页刷新操作放入单独的线程来完成。其目的为了减轻Master Thread的负担,从而进一步提高InnoDB存储引擎的性能

 

 

相关文章: