后台线程的作用: 将InnoDB引擎的缓冲池里面的数据,在合适的时机刷新到磁盘文件中。对于InnoDB引擎的后台线程共有四类,如下
1、master thread: 核心后台线程,负责调度其他线程。还负责将缓冲池中的数据异步刷新到磁盘中,保持数据的一致性。还包括脏页的 刷新、合并插入缓存、undo页的回收
2、io thread: 在InnoDB存储引擎中大量使用了aio(aio也就是异步非阻塞io,nio是同步非阻塞,bio同步阻塞)来处理io请求,这样可以 极大地提高数据库的性能,而io thread主要负责这些io请求的回调。不同的线程类型(共10个线程)作用如下
线程类型 | 默认个数 | 作用 |
---|---|---|
read thread | 4 | 负责读操作 |
write thread | 4 | 负责写操作 |
log thread | 1 | 负责将日志缓冲区刷新到磁盘 |
insert buffer thread | 1 | 负责将写缓冲区内容刷新到磁盘 |
3、purge thread 主要用于回收事务已经提交了的undo log。由于在事务提交之后,undo log可能不用了,所以就用purge thread来回收undo log 简单理解作用就是撤销日志
4、page cleaner thread 协助master thread来进行脏页刷新,page cleaner thread可以减轻master thread的工作压力,减少堵塞