关系型数据库 | 青训营笔记

32 阅读1分钟

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

一、发展历史

1、人工管理:绳结、账本等 2、文件系统 3、DBMS时代:网状数据库、层次模型、关系型数据库

网状数据库

image.png

image.png

层次模型

image.png

每个子节点只能有一个父节点,不是网状,而是树状了。

关系模型

image.png

SQL语言

image.png

二、关键技术

一条SQL的一生

image.png 语法解析器:Parser 优化器:Optimizer 执行器:Executor

SQL引擎

1.Parser

image.png

image.png 明确目的地。

2.Optimizer

选择到达目的地的最优路线。 1.基于规则的优化RBO

image.png

2.基于代价的优化CBO 一般都是基于代价的优化

3.Executor

火山模型: 从Plan开始,到存储引擎。

image.png

image.png

向量化:

image.png

编译执行:

image.png

存储引擎

InnoDB

image.png

内存态:做一些数据缓存

磁盘上:事务上常用的数据存储

  • Buffer Pool

事务引擎

ACID

A:原子性 C: 一致性 I:隔离性 D:持久性

原子性和Undo Log

事务回滚:通过undo log

image.png

undo log记录了执行的SQL命令的反操作。

隔离性和锁

读读:共享锁 Share Lock 写写:排它锁 Exclusive Lock 读写:MVCC

MVCC

持久性和Redo Log

image.png

随机IO:随机访问能力要求高 写放大:16kb页面的大小

image.png

三、企业实践

大流量问题

解决方案:sharding:分库分表

  • 业务数据进行水平拆分(如按照hash方式)

image.png

  • 代理层分片路由

突增流量

扩容 binlog 代理连接池

稳定性&可靠性

image.png

HA管理

image.png