1、InnoDB存储引擎概述

  InnoDB是事务安全的MySQL存储引擎。

  通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎。

  InnoDB是一个高性能、高可用、高可扩展的存储引擎。

2、InnoDB体系架构

    

  后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行状态。

  后台线程

    InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台线程,负责处理不同的任务

  # Master Thread

    核心后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等

  # IO Thread

    在InnoDB存储引擎中大量使用了AIO(Async IO)来处理写IO请求,这样可以极大提高数据库性能。而IO Thread的工作主要是负责这些IO请求的回调(call back)处理

    1.0版本之前共有4个IO Thread,分别是write、read、insert buffer和log IO thread。1.0版本以后 read thread和write thread分别增加到了4个,分别使

  用innodb_read_io_threads和innodb_write_io_threads参数进行设置,如:

     

  可以通过命令 show engine innodb status; 观察InnoDB中的 IO Thread

    

    可以看到 IO Thread 0位insert buffer thread。IO Thread 1为log thread。之后就是根据innodb_read_io_threads和innodb_write_io_threads参数来设置的读写线程,并且读线程的ID总是小于写线程。

  # Purge Thread

    事务被提交后,其所使用的undolog可能不再需要,因此需要Purge Thread来回收已经使用并分配的undo页。

    1.1以前,purge操作仅在Master Thread中完成。1.1以后,purge操作可独立到单独的线程中进行,以减轻Master Thread的工作,从而提高CPU的使用率以及提升存

  储引擎的性能。用户可以在MySQL数据库的配置文件中添加如下命令来启用独立的Purge Thread:

    [mysqld]

    innodb_purge_threads=1

    表示一个purge thread线程

    1.1中设置为大于1,InnoDB存储引擎启动时也会将其设为1,并提示信息。1.2开始,InnoDB支持多个Purge Thread,目的是为了进一步加快undo页的回收。同时由

  于Purge Thread需要离散的读取undo页,这样也能更近一步的利用磁盘的随机读取性能。

    

  # Page Cleaner Thread

    1.2.x版本中引入的。其作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。而其目的是为了减轻原Master Thread的工作及对于用户查询线程的

  阻塞,近一步提高InnoDB存储引擎的性能。

转载于:https://www.cnblogs.com/xxss/p/10869979.html

MySQL技术内幕 InnoDB存储引擎【二】后台线程相关推荐

  1. Mysql技术内幕InnoDB存储引擎——InnoDB存储引擎

    特此申明: 前段时间找工作所以看了<Mysql技术内幕InnoDB存储引擎>,整理的时候除了参考网上已有的笔记贴,加上自己整合的,可能和别人有雷同之处.不过无所谓啦,写出来自己看看,需要的 ...

  2. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

  3. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  4. MySQL技术内幕 InnoDB存储引擎:锁问题(脏读、不可重复读)

    1.脏读 在理解脏读(Dirty Read)之前,需要理解脏数据的概念.但是脏数据和之前所介绍的脏页完全是两种不同的概念.脏页指的是在缓冲池中已经被修改的页,但是还没有刷新到磁盘中,即数据库实例内存中 ...

  5. Mysql技术内幕——InnoDB存储引擎

    一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据 ...

  6. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  7. mysql技术innodb存储引擎读后感_《Mysql技术内幕-InnoDB存储引擎》读书笔记 (一)...

    @(Mysql) 官方数据库 下载 导入/data/mysql57/bin/mysql --socket /data/mysql3306/mysql.socket -uroot -ppassword1 ...

  8. MySQL技术内幕InnoDB存储引擎(表索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

  9. MySQL技术内幕 InnoDB存储引擎——第2章 InnoDB存储引擎(未完待续)

    第2章 InnoDB存储引擎 2.1 InnoDB存储引擎概述 InnoDB存储引擎是第一个完整支持ACID事务的MySQL存储引擎(BDB是第一个支持事务的MySQL存储引擎,现在已经停止开发). ...

  10. MySQL技术内幕-InnoDB存储引擎:第一章阅读

    目录 MySql体系结构和存储引擎 1.1 数据库与数据库实例 1.2 MySQL体系结构 1.3 MySQL表存储引擎 1.3.1 InnoDB存储引擎 1.3.2 MyISAM存储引擎 1.3.3 ...

最新文章

  1. Linux进程间通讯
  2. 背水一战 Windows 10 (15) - 动画: 缓动动画
  3. 七天学会SALTSTACK自动化运维 (3)
  4. 【Python】keras使用Lenet5识别mnist
  5. 西门子wincc消息队列服务器,安装Wincc 7.0 ASIA时,消息队列装不上,提示错误-工业支持中心-西门子中国...
  6. html滑动验证到最右边,jQuery滑块拖动到最右边验证插件
  7. modbus tcp调试助手_集成20几个功能的电气调试软件大放送,永久免费、持续升级...
  8. win10隐藏任务栏_你真的了解任务栏吗?win10任务栏居然隐藏了这么多小窍门
  9. 用fft对信号进行频谱分析实验报告_【鼎阳硬件智库原创︱测试测量 】基于全数字中频技术频谱分析仪的工作原理...
  10. python 面试真题
  11. 网络营销之QQ推广技巧
  12. 新元宇宙每周连载《地球人奇游天球记》第十三回火星烧烤
  13. 直播代码Flutter 实现虎牙/斗鱼 弹幕效果
  14. matlab读取excel画图
  15. 被安全数据淹没?如何令威胁情报为你服务
  16. 中移动内部 无线信号测试软件,- 移动网无线信号质量监测系统[图]
  17. springmvc深入浅出(备java基础,javaee课程,struts同类)-任亮-专题视频课程
  18. google chrome主页被毒霸篡改解决方式
  19. 访问链接提示“此网站无法提供安全连接”
  20. 做软件学c易语言可以吗,怎么样做一个易语言程序:

热门文章

  1. 看看华为 Java 编程的军规...
  2. 看图说话,FastJson 并没有那么流行!
  3. 专科学历,能让你永久增加5倍工作机会的最强方法!超级好用
  4. 手把手教你从0开始建中台
  5. 为什么100offer坚持私密招聘?
  6. python编译安装没有c扩展_python – 为什么我在安装simplejson时得到“C扩展无法编译”?...
  7. 那些有实力进入 BAT 的本科生,都做对了什么事?
  8. ASP.NET WEB API路由机制
  9. Photoshop CS2序列号大全 官方免费密钥
  10. PHP 通用检测函数集