深入理解RDBMS | 青训营笔记

96 阅读2分钟

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

存储系统

  • 块存储、文件存储、对象存储、key-value存储

数据库系统

  • 关系型 vs 非关系型

分布式架构

  • 数据分布策略、数据复制协议、分布式事务算法

事务Transaction:是由一组SQL语句组成的一个程序执行单元Unit,它需要满足ACID特性。

图片.png

按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三大类。

DBMS数据模型

图片.png

SQL引擎

查询解析: 首先将文本解析成结构化数据,也就是抽象语法树。AST

词法分析:字符串分割成token
语法分析:词法分析结果转成语法树
语义分析: 对语法树中的信息进行合法性校验。

查询优化: 根据AST优化产生最优执行计划(Plan Tree)。

基于规则的优化(RBO)
    条件化简
    表连接优化
    Scan优化
        唯一索引
        普通索引
        全表扫描
    数据库索引:是数据库管理系统中辅助数据结构,以协助快速查询、更新数据库表中数据。目前数据库中最常用的索引是通过B+树实现的。
    
基于代价的优化(CBO)
    资源
    对于InnoDB存储引擎来说,全表扫描是把聚簇索引中的记录都依次和给定的索引条件做一下比较,把符合搜条条件的记录都加入到结果集,所以需要把聚簇索引中对应的页面加载到内存中。然后再检测记录是否符合搜索条件。

查询执行: 根据查询计划,完成数据读取、处理、写入等操作。 事务引擎: 处理事务一致性、并发、读写隔离等。 存储引擎: 内存中的数据缓存区、数据文件、日志文件

图片.png