1. 3.1 InnoDB Buffer Poolhistorical

    1. Buffer Pool是什么 - MySQL启动时向操作系统申请的连续的内存空间 2. 为什么需要Buffer Pool - 磁盘和CPU的速度差异太大,因此需要内存作为缓存 - 在InnoDB访问表和索引数据时会在其中进行高速缓存,大量减少磁盘IO操作,提升效率 3. Buffer Pool

  2. 3.2 InnoDB MVCChistorical

    1. MVCC是什么 - 多版本并发控制 - 为了使不同事务的 读-写操作可以并发执行 ,对数据进行多版本处理,并通过事务的可见性来确定自己应该看到的数据版本 2. MVCC原理 - 从哪里取数据:版本链 - 取哪个版本的数据:ReadView 2.1. 版本链 - InnoDB undo log.

  3. 3.3 InnoDB redo loghistorical

    1. redo log是什么 - MySQL InnoDB存储引擎的日志,用于崩溃恢复 - redo log是一种基于磁盘的数据结构,在崩溃恢复期间用于纠正不完整事务写入的数据 2. 为什么需要redo log - 根据持久性的要求,事务一旦commit完成那么就必须落盘保存。有两种方案 - 一种是

  4. 3.4 InnoDB undo loghistorical

    1. undo log是什么 - MySQL InnoDB存储引擎的日志 - 主要记录了数据的逻辑变化 - 一条 INSERT 语句,对应一条 DELETE 的 undo log - 一条 UPDATE 语句,对应一条相反的 UPDATE 的undo log - 一条 DELETE 语句,对应一条

  5. 3.5 InnoDB事务historical

    1. 什么是事务 数据库事务.md 2. 事务的使用 - 开启事务: begin 或者 start transaction - 提交事务: commit - 自动提交事务: - SHOW VARIABLES LIKE 'autocommit' - 默认情况下,每一条语句都算是一个独立的事务 - 回滚

  6. 3.6 InnoDB表空间historical

    1. 表空间是什么 - 表空间是个抽象的概念 - 逻辑上 - 可以想象成页的池子 - 物理上 - 对于系统表空间来说,对应着文件系统中一个或多个实际文件 - 默认情况下, InnoDB 会在 数据目录 下创建一个名为 ibdata1 、大小为 12M 的文件,并且大小自扩展 - 对于每个独立表空间来

  7. 3.7 InnoDB和MyISAM索引对比historical

    1. InnoDB - MySQL默认的存储引擎 - InnoDB把数据分成若干页,每个页大小16KB,以页作为磁盘和内存交互的基本单位 - 即读最少读一页,写最少写一页 1.1. 索引实现 1.1.1. 主键索引 - 叶子节点的data存放的就是实际的数据 - - 由于索引上面存放的是实际的数据,

  8. 3.8 MySQL InnoDBhistorical

    1. InnoDB特点 1.1. 支持事务 - InnoDB事务.md 1.2. 支持行级锁 - MySQL锁.md 1.3. 支持MVCC - InnoDB MVCC.md 2. InnoDB架构 2.1. 内存层 2.1.1. Buffer Pool - 读缓冲区,目的是提升InnoDB性能,加

  9. 3.9 MySQL Flushhistorical

    1. 什么是Flush - 当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页” - Flush就是把脏页刷入磁盘 2. Flush触发时机 - 当出现几种情况的时候会把 - redo-log写满了(尽量避免,