在《深入浅出MySQL》的优化篇的21章开头记录MySql体系结构图,图中的Server层和引擎层划分的比较清晰,并且标出后台线程和服务线程的走向,跟着画了一遍,在遇到后面的知识点时,对照着图能够加深对知识点的理解。

线程组

默认情况下,MySql有7组后台线程,分别是1个主线程,4组IO线程,1个锁线程,1个错误监控线程。MySql5.5以后又新增了一个purge线程。这些后台线程主要功能如下:

  • master thread:负责将脏缓存页刷新到数据文件,执行purge操作,触发检查点,合并插入缓冲区等。
  • insert buffer thread:负责更新(增删改)缓冲区的合并操作。
  • read thread:负责数据库读取操作,可配置多个读线程。
  • write thread:负责数据库写操作,可配置多个写线程。
  • log thread:用于将重做日志刷新到logfile中,默认在事务commit的时候刷新。
  • purge thread:MySql5.5之后用单独的purge thread 执行purge操作。
  • lock thread:负责锁控制和死锁检测。
  • 错误监控线程:负责错误监控和错误处理。

show engine innodb status命令可以查看这些线程的状态

参考

最后修改日期: 2019年11月11日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。