今日学习,RDBMS
存储系统:块存储、文件存储、对象存储、K-V存储
数据库系统:关系型、非关系型
分布式架构:
- 数据分布策略
- 数据复制协议
- 分布式事务算法
例子:红包雨
RDBMS事务——A C I D
DBMS数据模型
- 层次模型
是树状,非网状
- 关系模型
二维表结构
RDBMS技术
Parser解析器
- 词法解析、语法分析、语义分析
- 词法分析,抓取SQL的关键词,分成不同类型
- 语法分析,将关键词构建成一个语法树,机器能够识别的
- 语义分析,类型校验,表和列是否存在校验
优化气Optimizer
-
优化执行SQL路径
-
基于规则的优化(RBO Rule Base Optimizer)
-
条件简化
- a = 5 and b > 5 ----> a = 5 and b > 5
- a > 5 and a < b and b = 1 -----> false
-
表连接优化
- 总是小表先进行连接
-
Scan优化
- 唯一索引
- 普通索引
- 全表扫描
-
基于代价的优化(CBO Cost Base Optimizer)
-
代价可以是时间,IO,CPU,NET,MEM等。考虑整体并发的代价,而不是单条SQL查询的代价
-
执行器Executor
- 火山模型
每次操作计算都是批量数据,计算完成后想上层返回一个Batch
- 缺点
- 优点
- 编译执行
- 动态编译`LLVM`:有了执行树,在动态生成执行路径
存储引擎
InnoDB
- Buffer Pool
- HasMap
- LRU:最少使用淘汰策略,管理内存空间
- Page页面
- B+-Tree
- 点查
- 范围查
事务引擎
原子性、Undo Log
如何退回?
Isolation、锁
- 读:Share Lock
- 写:Exclusive Lock
- 读写:MVCC
事务版本——MVCC
- 读写互补阻塞
- 减低死锁概率
- 一致性读