1. 1.30 InnoDB MVCChistorical

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

  2. 1.31 InnoDB redo loghistorical

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

  3. 1.32 InnoDB undo loghistorical

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

  4. 1.33 InnoDB事务historical

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

  5. 1.34 InnoDB表空间historical

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

  6. 1.35 InnoDB和MyISAM索引对比historical

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

  7. 1.36 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性能,加

  8. 1.37 MySQL Flushhistorical

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

  9. 2.PostgreSQLhistorical

    1. SQL优化 - PostgreSQL explain.md 2. 事务 - PostgreSQL隔离级别.md - PostgreSQL MVCC.md

  10. 2.1 PostgreSQL隔离级别historical

    1. 实现 PostgreSQL中根据获取快照时机的不同实现了不同的数据库隔离级别(对应代码中函数GetTransactionSnapshot): - Read UnCommited/Read Commited:每个query都会获取最新的快照CurrentSnapshotData - Repeta