第2章 InnoDB存储引擎  

2.1 InnoDB存储引擎的版本

InnoDB存储引擎包含所有MySQL数据库的二进制发行版本中,早期版本随着MySQL数据库的更新而更新,在MySQL5.1中,可以 支持两个版本的InnoDB,一个是静态编译的InnoDB版本,可以称为老版本的InnoDB,另一个是动态加载的InnoDB版本,官方称为InnoDB Plugin,可以视为InnoDB 1.0.x版本。MySQL5.5版本中又将InnoDB的版本升级到了1.1.x。下表为InnoDB各版本功能对比:

版本 功能
老版本 支持ACID、行锁设计、MVCC
InnoDB 1.0.x 继承上版功能,增加了compress和dynamic页格式
InnoDB 1.1.x 继承上版功能,增加了Linux AIO、多回滚段
InnoDB 1.2.x 继承上版功能,增加了全文索引支持、在线索引添加

2.2 InnoDB体系结构

在这里插入图片描述

2.2.1 后台线程

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

  1. Master Thread
    Master Thread是一个非常核心的后台线程,主要负责将缓冲区中的数据异步刷新到磁盘,保持数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等。
  2. IO Thread
    InnoDB存储引擎使用了AIO(异步IO)来处理IO请求,这样可以提高数据库的性能。而IO Thread的工作主要是负责这些IO请求的回调。InnoDB 1.0版本之前有4个IO Thread,分别是write、read、insert buffer和log IO thread。IO Thread的数量不断进行调整,从InnoDB 1.0.x版本开始,read thread和write thread分别增大到了4个,在windows系统中可以通过innodb_read_io_threadsinnodb_write_io_threads参数进行设置,如:
    在这里插入图片描述
    通过命令SHOW ENGINE INNODB STATUS;来查看InnoDB中的IO Thread;
I/O thread 0 state: wait Windows aio (insert buffer thread)
I/O thread 1 state: wait Windows aio (log thread)
I/O thread 2 state: wait Windows aio (read thread)
I/O thread 3 state: wait Windows aio (read thread)
I/O thread 4 state: wait Windows aio (read thread)
I/O thread 5 state: wait Windows aio (read thread)
I/O thread 6 state: wait Windows aio (write thread)
I/O thread 7 state: wait Windows aio (write thread)
I/O thread 8 state: wait Windows aio (write thread)
I/O thread 9 state: wait Windows aio (write thread)
Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值