RDBMS 介绍丨青训营笔记

68 阅读2分钟

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

本文同步发布于博客(xblc.netlify.app),如果有更新博客会在第一时间更新


tags: [知识点记录, GoLang, 青训营]


‌‌深入理解RDBMS.pptx - 飞书云文档

【后端专场 学习资料六】第五届字节跳动青训营 - 掘金

image.png

经典案例

红包雨:每抢一个红包,就会在关系型数据库上执行两个语句

事务:由 SQL 语句组成的程序执行单元,需要满足 ACID 的特性

ACID 的例子

原子性:抖音扣钱和账户价钱必须同时成功或者同时失败,不然就有人血亏 一致性:主要表示的是合法性,像抖音银行的账户扣成了负数,那就不是合法的 隔离性:抖音和头条各扣一个亿,但是因为并发造成的问题用户只赚了一个亿 持久性:操作更新以后钱就没了

其他例子

高并发:那么大的用户量,请求肯定不能串行处理 高可靠:服务器在关键时刻宕机

发展历程

前 DBMS 时代:

人工管理 ->

文件系统 ->

DBMS 时代:

数据库的核心是他的数据模型

  • 网状模型:世界上第一个 DBMS;记录之间都是一个多对多的关系
  • 层次模型:诞生于 IBM 的 IMS(信息管理系统);一对多,主要是树状结构
  • 关系模型:实体间的联系都通过二维表来描述了

对比

image.png

SQL 语言

结构化的查询语言,它不同于过程化语言,它只需要告诉数据库做什么,不需要告诉它怎么做

历史回顾

image.png

Oracle 首先发现了 IBM 隐藏的那篇论文和技术,然后综合其他内容进行了首次的一个商业化数据库的发布

关键技术

一条 SQL 的一生(执行过程)

image.png

Parser

分为

  • 词法分析
  • 语法分析
    • 语法树 AST 用来解析对机器不那么友好的 SQL 语句
  • 语义分析:主要是合法性检验,语句的执行是否有问题

image.png

Optimizer

为什么需要优化器?

例子:高德选择一条最佳的路径

表之间会有不同的连接方式,选择最优的连接方式

RBO优化(基于规则的优化)

  • 条件化简
  • 表连接优化:最小表先进行连接
  • Scan优化:索引模式

Plan Tree 执行的关键

(还是没看完,其实今天的课还挺浅显易懂的,但还是尊重现在的情况吧,项目优先,没看完项目之前比较难安心学)

SQL 引擎

存储引擎

事务引擎

企业实践