InnoDb存储引擎概念与原理(高性能MySQL第三版)

  • InnoDB介绍
  • InnoDB和ACID模型
  • InnoDB多版本
  • InnoDB架构
  • InnoDB锁和事务模型
  • InnoDB配置

InnoDB的整体架构

InnoDB兼具高可靠性和高性能。 在MySQL 5.6中,InnoDB是默认的官方推荐的存储引擎。
InnoDB的整体架构图:(请忽略图中的XTraDB)InnoDb存储引擎概念与原理(高性能MySQL第三版)_第1张图片
InnoDB多线程模型:InnoDb存储引擎概念与原理(高性能MySQL第三版)_第2张图片
多线程
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第3张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第4张图片在这里插入图片描述InnoDb存储引擎概念与原理(高性能MySQL第三版)_第5张图片
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第6张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第7张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第8张图片

InnoDB表的最佳实践

InnoDb存储引擎概念与原理(高性能MySQL第三版)_第9张图片

InnoDB和ACID模型

ACID是什么?
A: atomicity. 原子性
C: consistency. 一致性
I : isolation. 隔离性
D: durability. 持久性
ACID其实是mysql的四种特性,见下图:InnoDb存储引擎概念与原理(高性能MySQL第三版)_第10张图片
mysql的哪些模块/设计与ACID相关?InnoDb存储引擎概念与原理(高性能MySQL第三版)_第11张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第12张图片
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第13张图片

InnoDB多版本

InnoDb存储引擎概念与原理(高性能MySQL第三版)_第14张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第15张图片
InnoDB Multi-Versioning的原理。
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第16张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第17张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第18张图片

InnoDb架构

InnoDB兼具高可靠性和高性能。 在MySQL 5.6中,InnoDB是默认的官方推荐的存储引擎。 InnoDb存储引擎概念与原理(高性能MySQL第三版)_第19张图片
InnoDB多线程模型:InnoDb存储引擎概念与原理(高性能MySQL第三版)_第20张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第21张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第22张图片innodb的缓存池是什么?

InnoDB缓存池,本质上是内存中的一块区域,当数据被访问时,InnoDB会把表数据、索引数据缓存在 buffer pool 缓存池中。
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第23张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第24张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第25张图片
加速写实现原理InnoDb存储引擎概念与原理(高性能MySQL第三版)_第26张图片

更改缓冲区InnoDb存储引擎概念与原理(高性能MySQL第三版)_第27张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第28张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第29张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第30张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第31张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第32张图片

自适应哈希索引

InnoDb存储引擎概念与原理(高性能MySQL第三版)_第33张图片
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第34张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第35张图片

redo log缓冲区

redo log缓冲区是一块内存区域,保存将要写入redo log的数据。
mysql 崩溃恢复是需要redo log的。

redo log缓冲区大小由innodb_log_buffer_size配置选项定义。
redo log缓冲区会定期把内存中的回滚日志刷到磁盘上。一个大的redo log缓冲区意味着允许大事务运行,而无需在事务提交之前将redo log写入磁盘。因此,如果您有更新,插入或删除多行的事务,则使用更大的redo log缓冲区可节省磁盘I/O。InnoDb存储引擎概念与原理(高性能MySQL第三版)_第36张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第37张图片控制 InnoDB 事务日志刷新方式参数:innodb_flush_log_at_trx_commit :InnoDb存储引擎概念与原理(高性能MySQL第三版)_第38张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第39张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第40张图片

系统表空间InnoDb存储引擎概念与原理(高性能MySQL第三版)_第41张图片

系统表空间还包含任何用户在系统表空间中创建的表和索引数据。
系统表空间被视为共享表空间,因为它被多个表共享。InnoDb存储引擎概念与原理(高性能MySQL第三版)_第42张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第43张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第44张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第45张图片

InnoDb数据字典InnoDb存储引擎概念与原理(高性能MySQL第三版)_第46张图片在MySQL8.0 之前,由于历史原因。
Data Dictionary除了存在于InnoDB系统表空间。
还存在于文件系统的 .FRM, .TRG, .OPT ⽂件中。
还存在于系统表中(基于MyISAM存储引擎的⾮事务引擎表中)。而且在一定程度上彼此的信息是重叠的。在MySQL8.0,Data Dictionary 全部存在于Data Dictionary Storage Engine(即 InnoDB表中)InnoDb存储引擎概念与原理(高性能MySQL第三版)_第47张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第48张图片
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第49张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第50张图片
双写缓冲区
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第51张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第52张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第53张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第54张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第55张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第56张图片
file-per-table
InnoDb存储引擎概念与原理(高性能MySQL第三版)_第57张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第58张图片重做日志-redo logInnoDb存储引擎概念与原理(高性能MySQL第三版)_第59张图片

InnoDb锁和事务模型

InnoDb锁

InnoDb存储引擎概念与原理(高性能MySQL第三版)_第60张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第61张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第62张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第63张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第64张图片
锁的介绍一篇比较好的文章
http://mysql.taobao.org/monthly/2016/01/01/
InnoDb事务模型InnoDb存储引擎概念与原理(高性能MySQL第三版)_第65张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第66张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第67张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第68张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第69张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第70张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第71张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第72张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第73张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第74张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第75张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第76张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第77张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第78张图片InnoDb配置InnoDb存储引擎概念与原理(高性能MySQL第三版)_第79张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第80张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第81张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第82张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第83张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第84张图片InnoDb存储引擎概念与原理(高性能MySQL第三版)_第85张图片

你可能感兴趣的:(职场@数据库)