MySql-深入理解RDBMS | 青训营笔记

39 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第13天

1. 本节课重点内容

  • 基本概念
  • 发展历史
  • 关键技术

2. 基本概念

2.1 RDBMS 事物 ACID

  • 事物:是由一组sql语句组成的一个程序执行单元(Unit),它需要满足ACID特性
  • ACID
    • 原子性
    • 一致性
    • 隔离性
    • 持久性

3. 发展历史

3.1 人工管理

  • 结绳记事
  • 清代钱庄账本
  • 打孔机

3.2 文件系统

1956年IBM发布了第一个的磁盘驱动器--Model 305 RAMAC,从此数据存储进入磁盘时代

3.3 DBMS时代

  • 按照某种数据模型来组织、存储和管理数据库的仓库
  • 传统数据库分为
    • 网状数据库
    • 层次数据库
    • 关系数据库

3.4 网状数据库

网状数据库是世界上第一个数据库,奠定了数据库发展的基础

3.5 层次模型

通过树结构来描述实体及其之间的关系的数据模型

3.6 关系模型

利用关系描述关系特征

3.7 优势与劣势

图片.png

3.8 SQL语言

1974年IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数字定义以简单的关键字语法表现出来,里程碑式的提出了SQL语言

  • 语法风格接近自然语言
  • 高度非过程化
  • 面向集合的操作方式
  • 语言简洁,易学易用

3.9 发展历史

图片.png

4. 关键技术

4.1 一条SQL的一生

图片.png

4.2 SQL引擎 - Parser

解析器一般分为词法分析、语法分析、语义分析等步骤

图片.png

4.3 Sql引擎-Optimizer

  • 条件化简

图片.png

  • 表连接优化
    • 总是小表先进行连接
  • Scan优化
    • 唯一索引
    • 普通索引
    • 全表扫描

4.4 Sql引擎-Executor

火山模型

图片.png

  • 优点
    • 每个算子独立抽象实现,相互之间没有耦合,逻辑结构简单
  • 缺点
    • 每计算一条数据有多次函数调用开销,导致cpu效率不高

4.5 存储引擎-InnoDB

图片.png

4.5.1 Buffer Pool

图片.png

图片.png

图片.png

4.5.2 Page

图片.png

4.5.3 B+Tree

图片.png

4.6 事物引擎 - Atomicity 与 Undo Log

实现数据的回滚

  • Undo Log 是逻辑日志,记录的是数据的增量变化。利用Undo Log 可以进行事物回滚, 从而保证事物的原子性