查看innodb引擎的版本
mysql> show variables like 'innodb_version'\G;
查看当前运行的线程
mysql> show engine innodb status \G;
通过上图可以看到IO Thread 0为insert buffer thread,IO Thread 1为log thread。
控制IO线程的参数
mysql>show variables like 'innodb_%io_threads'\G;
参数innodb_read_io_threads和innodb_write_io_threads分别用来控制mysql IO线程的数量。
INNODB引擎使用了AIO来处理写IO请求,这样可以极大的提高性能。IO Thread的工作主要是负责这些IO请求的回调处理。
Master Thread线程:
是一个核心的后台线程,主要负责将缓冲池中的数据异步的刷新到磁盘,保证数据的一致性(其实应该是持久性)。包括了脏页的刷新、合并插入缓冲、UNDO的回收等。
purge thread 线程
事务被提交后,其所使用的undo log可能不再需要,因此需要purge thread来回收已经使用并分配的undo页。
该线程的数量可以通过innodb_purge_threads参数来控制。
page cleaner thread线程
该线程的作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。其目的是为了减轻master thread的工作及对于用户查询线程的阻塞,进一步提高InnoDB存储引擎的性能。