MySQL架构原理之存储引擎InnoDB线程模型

  如下图示,为InnoDB线程模型示意图:

    

  1、IO Thread

    在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。其提供了write/read/insert buffer/log Thread。

      

   2、Purge Thread

    事务提交之后,其使用的undo日志将不再需要,因此需要Purge Thread回收已经分配的undo page:  

      show variables like '%innodb_purge_threads%'

  3、Page Cleaner Thread

    作用是两脏数据刷新到新磁盘,脏数据刷盘后相应的redo log 也就可以覆盖,即可以同步数据又能达到redo log循环使用的目的。会调用write thread线程处理:

      show variables like '%innodb_page_cleaners%'

  4、Master Thread

    Master thread是InnoDB的主线程,负责调度其他各线程,优先级最高。作用是将缓冲池中的数据异步刷新到磁盘保证数据的一致性。包含:脏叶的刷新(page cleaner thread)、undo叶回收(purge thread)、redo日志刷新(log thread)、合并写缓冲等。内部有两个主处理、分别是每隔1秒和10秒处理。

    每隔一秒操作:

      

    每隔十秒操作:

      

 

 

 

 

 

 

 

  

 

posted on 2022-02-15 23:25  池塘里洗澡的鸭子  阅读(132)  评论(0编辑  收藏  举报