如下图示,为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秒处理。

    每隔一秒操作:

      

    每隔十秒操作:

      

  

MySQL架构原理之存储引擎InnoDB线程模型的更多相关文章

  1. MySQL架构原理之存储引擎InnoDB数据文件

    MySQL架构原理之体系架构 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中简单介绍了MySQL的系统文件层,其中包含了数据文件.那么InnoDB的数据文件是如何分类并存储的呢? 一. ...

  2. MySQL架构原理之存储引擎InnoDB_Redo Log和BinLog

    Redo Log和Binlog是MySQL日志系统中非常重要的两种机制,有很多相似之处同时也有差别,本文探究两者细节和区别. 一.Redo Log 1.Redo Log介绍 Redo:顾名思义就是重做 ...

  3. MySQL架构原理之存储引擎InnoDB_Undo Log

    Undo:意为撤销或取消,以撤销操作为目的,返回某个指定状态的操作. Undo Log:数据库事务开始之前会将要修改的记录存放到Undo日志里,当事务回滚时或者数据库崩溃时可以利用Undo日志撤销为提 ...

  4. [转帖]一文看懂mysql数据库本质及存储引擎innodb+myisam

    一文看懂mysql数据库本质及存储引擎innodb+myisam https://www.toutiao.com/i6740201316745740807/ 原创 波波说运维 2019-09-29 0 ...

  5. mysql修改数据库的存储引擎(InnoDB)

    查看当前的存储引擎 show engines; 基本的差别:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不 ...

  6. 浅谈MySQL存储引擎-InnoDB&MyISAM

    存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见 ...

  7. 常用Mysql存储引擎--InnoDB和MyISAM简单总结

    常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52|  分类: CCST|举报|字号 订阅     MySQL服务器采用了模块化风格,各部分之间保持相 ...

  8. MySQL存储引擎InnoDB与Myisam

    InnoDB与Myisam的六大区别 InnoDB与Myisam的六大区别 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名 ...

  9. MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别

    MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认 ...

随机推荐

  1. openlayers素材网站

    1.教程网站 http://weilin.me/ol3-primer/ch05/05-03.html 2.特效气象图 https://earth.nullschool.net/zh-cn/#curre ...

  2. CTF-sql-sql约束注入

    create table user( id int not null auto_increment, username varchar(30) not null, password varchar(3 ...

  3. vs python2.7 bug

    微软vs里面小细节的bug真他妈的多

  4. unity3d百度语音+图灵机器人

    using NAudio.Wave; using System; using System.Collections; using System.Collections.Generic; using S ...

  5. DDD从入门到精通:基础篇

    这篇文章主要还是表述清楚DDD相关的基础概念,因为DDD入门有一定的专业名词,还是得有个基本的了解. 先讲解下领域模型作用: 对软件需求进行设计,维持其内在逻辑的一致性 1)划分边界.也是一种高内聚. ...

  6. 2022年写的香橙派 OrangePi Zero 用python获取dht11温度和湿度

    感谢网上资料和个人的不放弃,终于方便的解决了香橙派 OrangePi Zero用python获取dht11温湿度的问题. 网上关于香橙派的资料比起树莓派真是少之又少,现在香橙派zero能干的活暂时也只 ...

  7. linux单用户模式修改密码与系统启动级别

    目录 一:系统启动级别 二:单用户模式修改密码 一:系统启动级别 系统启动级别: 0 关机 1 单用户模式(无法通过xshell方式使用)(虚拟机操作)(系统云服务商后台) 2 多用户无网络模式 3 ...

  8. sql 同步远程数据库(表)到本地

    一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb ...

  9. gcc 11.2 在线升级

    环境:centos 7 1.准备开发环境 $ yum groupinstall "Development Tools" $ yum install glibc-static lib ...

  10. 回顾 2021 中国 .NET 开发者峰会

    .NET Conf China 2021 是面向开发人员的社区峰会,基于 .NET Conf 2021,庆祝 .NET 6 的发布和回顾过去一年来 .NET 在中国的发展.峰会由来自北京.上海.苏州. ...