这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
RDBMS
RDBMS数据模型-网状模型
网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。IDS是世界上第一个网状数据库,奠定了数据库发展的基础
RDBMS数据模型-层次模型
世界上第一个大型商用的数据库系统。 层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。
RDBMS数据模型-关系模型
Oracle首次将关系型数据库商业化。
SQL语言
- 语法风格接近自然语言
- 高度非过程化
- 面向集合的操作方式
- 语言简洁,易学易用
关键技术:
SQL引擎 -Parser(解析器)
解析器一般分为词法分析,语法分析,语义分析等步骤
SQL引擎 -Optimizer(优化器)
- 基于规则的优化(RBO)
- 条件化简
- 表连接优化
- 总是小表先进行连接
- scan优化
- 唯一索引
- 普通索引
- 全表扫描
- 基于代价的优化(CBO)
一个查询有多种执行方案,CBO会选择其中代价最低的方案去真正的执行。
SQL引擎-Executor
优点: 每个算子独立抽象实现,相互之间没有耦合,逻辑结构简单
缺点: 每计算一条数据有多次函数调用开销,导致CPU效率不高。
存储引擎
事务引擎 -Atomicity与Undo Log
Undo Log是逻辑日志,记录的是数据的增量变化。利用Undo Log可以进行事务回滚,从而保证事务的原子性,同时也实现了多版本并发控制,解决读写冲突和一致在读的问题。
企业实践:
- 大流量 -Sharding
业务数据进行水平拆分
代理层进行分片路由
- 流量突增 -扩容
扩容DB物理节点数量
利用隐子表进行压测
- 流量突增-代理连接池
业务侧预热连接池
代理侧预热连接池
代理测支持连接队列
- 稳定性&可靠性 -HA管理
ha服务监管、切换宕机节点
代理支持配置热加载
代理自动屏蔽宕机读节点