
Master thread有四大循环,分别是loop,background loop,suspend loop,flush loop。且四大循环的作用如下:

如上图所示
innodb 1.0.x之前的master thread和此版本有些不同。不同之处在于脏页刷新的页面数,在1.0.x之前的版本中,每秒刷写固定的100个脏页,合并20个undo页。
在innodb 存储引擎中大量使用了AIO(Async IO)来处理io请求.在innodb 1.0.x版本之前,共有4个IO thread,分别是 wirte io ,read io,insert buffer ,log io thread,但是在windows平台可以通过innodb_file_io_threads来增加IO thread。从InnoDB 1.0.X版本开始,read thread,write thread分别增加到了4个,并不再使用innodb_file_io_threads参数,而是使用innodb_read_io_threads,innodb_write_io_threads参数。
purge thread主要用于回收undo 页。在InnoDB 1.1版本之前主要由master thread回收undo 页,从innodb 1.1版本开始,将purge独立,从而提高cpu利用率。用户可以通过innodb_purge_threads参数设置purge 的线程,不过这一特性是从innodb 1.2开始支持的,一般就设置4吧,表示有4个purge thread并行清理undo页面。
page Cleaner Thread 用于脏页刷新,这一功能是从innodb 1.2.x版本开始引入的。