后台线程的作用: 将InnoDB引擎的缓冲池里面的数据,在合适的时机刷新到磁盘文件中。对于InnoDB引擎的后台线程共有四类,如下

 

1、master thread: 核心后台线程,负责调度其他线程。还负责将缓冲池中的数据异步刷新到磁盘中,保持数据的一致性。还包括脏页的 刷新、合并插入缓存、undo页的回收

 

2、io thread: 在InnoDB存储引擎中大量使用了aio(aio也就是异步非阻塞io,nio是同步非阻塞,bio同步阻塞)来处理io请求,这样可以 极大地提高数据库的性能,而io thread主要负责这些io请求的回调。不同的线程类型(共10个线程)作用如下

线程类型默认个数作用
read thread4负责读操作
write thread4负责写操作
log thread1负责将日志缓冲区刷新到磁盘
insert buffer thread1负责将写缓冲区内容刷新到磁盘

 

3、purge thread 主要用于回收事务已经提交了的undo log。由于在事务提交之后,undo log可能不用了,所以就用purge thread来回收undo log 简单理解作用就是撤销日志

 

4、page cleaner thread 协助master thread来进行脏页刷新,page cleaner thread可以减轻master thread的工作压力,减少堵塞