非常不建议看我的学习笔记
建议看:Mysql技术内幕 InnoDB存储引擎 这本书
InnoDB 后台线程
InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台线程,处理不同的任务。
- Master Thread
Master Thread是一个非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等。- IO Thread
在InnoDB存储引擎中大量使用了AIO(Async IO)来处理写IO请求,这样可以极大提高数据库的性能。而IO Thread的工作主要负责这些IO请求的回调(call back)处理。- Purge Thread
事务被提交后,其所使用的undolog可能不再需要,因此需要Purge Thread 来回收已经使用并分配的undo页。在InnoDB 1.1版本前,purge操作仅在InnoDB存储引擎的master Thread中完成。而从InnoDB 1.1版本开始,purge操作可以独立到单独的线程中进行,从此来减轻Master Thread的工作,从而提高CPU的使用率以及提升存储引擎的性能。