RDBMS | 青训营笔记

65 阅读2分钟

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

image.png

RDBMS

RDBMS数据模型-网状模型

网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。IDS是世界上第一个网状数据库,奠定了数据库发展的基础

RDBMS数据模型-层次模型

世界上第一个大型商用的数据库系统。 层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。

RDBMS数据模型-关系模型

Oracle首次将关系型数据库商业化。

image.png

SQL语言

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

关键技术:

SQL引擎 -Parser(解析器)

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

SQL引擎 -Optimizer(优化器)

  1. 基于规则的优化(RBO)
  • 条件化简
  • 表连接优化
    • 总是小表先进行连接
  • scan优化
    • 唯一索引
    • 普通索引
    • 全表扫描
  1. 基于代价的优化(CBO)

一个查询有多种执行方案,CBO会选择其中代价最低的方案去真正的执行。

SQL引擎-Executor

优点: 每个算子独立抽象实现,相互之间没有耦合,逻辑结构简单

缺点: 每计算一条数据有多次函数调用开销,导致CPU效率不高。

存储引擎

事务引擎 -Atomicity与Undo Log

Undo Log是逻辑日志,记录的是数据的增量变化。利用Undo Log可以进行事务回滚,从而保证事务的原子性,同时也实现了多版本并发控制,解决读写冲突和一致在读的问题。

企业实践:

  • 大流量 -Sharding

业务数据进行水平拆分

代理层进行分片路由

  • 流量突增 -扩容

扩容DB物理节点数量

利用隐子表进行压测

  • 流量突增-代理连接池

业务侧预热连接池

代理侧预热连接池

代理测支持连接队列

  • 稳定性&可靠性 -HA管理

ha服务监管、切换宕机节点

代理支持配置热加载

代理自动屏蔽宕机读节点