MySQL(四):InnoDB 体系架构

1、InnoDB 体系架构简述

InnoDB 存储引擎架构分为两部分:

一个是InnoDB内存结构

一个是InnoDB磁盘结构

  • InnoDB 表(Tables)

  • InnoDB 索引(Indexes)

  • InnoDB 表空间(Tablespaces)

  • InnoDB 双写缓冲区(Doublewrite Buffer)

  • InnoDB 重做日志(Redo Log)

  • InnoDB 撤销日志(Undo Logs)

InnoDB 存储引擎采用了后写机制(还有人称为日志先行策略),也就是说当对数据进行修改时,先记录在内存中,然后由数据库线程刷新到磁盘文件。

事务的操作就会记录成 Redo Log (重做日志),然后转换为顺序的IO来提交事务。也就是说当事务记录到日志中之后,就表示事务已经完成了,会立即返回信息给用户。实际上,数据的操作可能还在内存中,并没有刷新到磁盘。所以,如果这时机器出现故障,那么这部分数据就会丢失。

InnoDB 存储引擎通过 Redo Log 来保证数据的一致性。有人会说那就保存所有的 Redo Log 不就万无一失了,这样系统出现故障或者崩溃后,根据日志重建数据,很显然这样是理想状态。InnoDB 存储引擎为了解决这个问题,引入了检查点机制,通过定时检查,可以保证在检查点之前的日志都写入磁盘,只会丢失一小部分数据。那么这些机制具体是怎么运转的呢,小编会另起文章详细参数。下面先上两张图,从整体上看一下 InnoDB 存储引擎的架构,后文会对其进行分解阐述。

官网的InnoDB 存储引擎图:

在这里插入图片描述

下图是网上找到的InnoDB 存储引擎架构图,很遗憾最终没有找到出处,感谢绘制这张图的作者。

在这里插入图片描述

2、参考文献

  1. 《高性能MySQL(第3版)》
  2. 《MySQL技术内幕:InnoDB存储引擎(第2版)》
  3. 《MySQL源码库》
  4. 《MySQL参考手册》
  5. 《MySQL实战45讲》
  6. 《MySQL 是怎样运行的:从根儿上理解 MySQL》
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值