RDBMS| 青训营笔记

53 阅读2分钟

存储系统

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

数据库系统

  • 关系型数据库、非关系型数据库

分布式架构

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

RDBMS

关系数据库管理系统(Relational Database Management System) DBMS分为网状模型、层次模型和关系模型

网状模型形如多层神经网络那样

层次模型形如多叉树

关系模型形如二维表

网状模型层次模型关系模型
优势能直接描述现实世界,存取效率较高结构简单,查询效率高,可以提供较好的完整性支持实体及实体间的的联系都通过二维表结构表示,可以方便的表示M:N关系,数据访问路径对用户透明
劣势结构复杂,用户不易使用访问,程序设计复杂无法表示M:N的关系,插入、删除限制多,遍历子节点必须经过父节点,访问程序设计复杂关联查询效率不够高,关系必须规范化

一条SQL的一生

SQL语句首先进入连接器,连接器首先要经过TCP三次握手(使用数据库连接池的一个原因就是节省tcp握手挥手的损耗),tcp连接成功后就开始进行用户验证,验证成功则获取该用户权限。然后SQL语句会进入解析器,解析器会对SQL语句进行词法(判断关键字是否输入正确)和语法分析(语法是否有问题)。解析完SQL后会进入预处理器,主要是检查SQL语句中的表和字段是否存在;然后进入优化器,负责制定SQL语句的执行方案;最后由执行器真正开始执行SQL语句。

buffer pool

为了减少I/O读取,innodb设计了缓冲池(Buffer Pool)

这样当读取数据时首先读取buffer pool中的数据,没有再去磁盘读取

当修改数据时,先修改buffer pool中的数据,并将其设置为脏页,最后由后台线程将脏页写入到磁盘。

InnoDB 会把存储的数据划分为若干个「页」,以页作为磁盘和内存交互的基本单位,一个页的默认大小为 16KB。因此,Buffer Pool 同样需要按「页」来划分。在 MySQL 启动的时候,InnoDB 会为 Buffer Pool 申请一片连续的内存空间,然后按照默认的16KB的大小划分出一个个的页, Buffer Pool 中的页就叫做缓存页