深入理解RDBMS|青训营笔记

148 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记。

主要内容

通过生活中常见的场景介绍 RDBMS 的作用、发展历程及其核心技术,最后以字节为例,展示了 RDBMS 的企业级实践

背景

  • RDBMS(关系型数据库)是目前使用最为广泛的数据库之一,同时也是整个信息化时代的基石

经典案例

通过抖音红包雨的案例,介绍 RDBMS 中 ACID 的概念:

  • 原子性(Atomicity):事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。 Case 1:抖音的账户上扣了一个亿之后,假设服务器挂了,还没来得及给羊老师账户上加一个亿。
  • 一致性(Consistency):数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 Case 2:假设抖音的账户上只有0.5个亿,但是扣减1个亿的操作成功了。
  • 隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。 Case 3:羊老师从抖音抢了一个亿红包,又从头条抢了一个亿,两个转账同时进行,假设他们都以为是从零开始
  • 持久性(Durability):在事务完成以后,该事务所对数据库所做的更改便持久的保存在数据库之中,并不会被回滚。 Case 4:抖音的账户上扣了一个亿,然后羊老师账户上加一个小目标,但都还没写到磁盘上。这个时候,如果服务器挂了

Case 5:全国14亿人,假设有10亿人同时开抢红包,每秒处理一个请求,那需要31年才能完成。春节完了,抖音可能也被大家嫌弃了.....---高并发Concurrency

Case 6:假设除夕晚上大家正在愉快的从抖音身上"·羊毛”,这时候服务器挂了,程序员花了一个小时,头发都掉光了,终于修好了。这时候发现李谷一老师《难忘今宵》都唱完了。"抖音宕机"秒上热投....---高可靠、高可用High Reliability/Availability

发展历史

数据库发展最初过程中,诞生过3种数据模型,最终关系型模型成为了应用最为广泛的数据库模型。

image.png

  • 网状模型:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
  • 层次模型:层次数据模型是用树状<层次>结构来组织数据的数据模型。
  • 关系模型:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。

image.png

关键技术

一条SQL的一生

image.png

SQL引擎

  • Paser:经过词法分析、语法分析生成语法树,然后对语法树进行合法性校验。

例子: image.png

  • Optimizer:根据 Parser 产生的语法树,根据规则或者代价产生执行计划树。

例子: image.png

  • Executor:根据计划树进行执行,常见的执行方式是火山模型。 例子: image.png

企业实践

  • 大容量 - Sharding

  • 流量突增 - 扩容

  • 流量突增一代理连接池

  • 稳定性可靠性

    1)3AZ高可用

    2)HA管理

课程总结

image.png