MySQL 多种结构介绍
MySQL 体系结构
连接层
- 验证用户身份
- 提供了两种连接方式(TCP/IP连接、socket连接)
- 建立与SQL层交互的线程
SQL 层
- 接收连接层传过来的SQL语句,如DDL、DML和存储过程等。并把结果返回给连接层。
- 验证SQL语句的语法、语义。
- 解析器:解析SQL语句,最终生成执行计划。
- 优化器:从多个执行计划中选出最优的一条。
- 执行器:执行选出来的最优计划。
- 建立一个与存储引擎层交互的线程。
- 执行SQL获取存储引擎层传来的数据,结构化成表格。
- 如果有缓存的化,会把数据写入到缓存。
- 记录执行日志(binlog)
存储引擎层
- 接收SQL层传过来的执行语句
- 与磁盘交互,进行数据的读取、存储,将数据返回给SQL层
MySQL 逻辑结构
- 库
- 表:元数据 + 真实数据行
- 元数据:列 + 其他属性
- 列:列名 + 数据类型 + 约束(非空、主键、默认值)
MySQL 物理结构
数据物理结构
mysql最底层就是数据文件,可以手动在data目录下创建目录,数据库中就能看到这个库。
- MySQL的最底层的物理结构是数据文件,也就是说与存储引擎层打交道的文件,是数据文件。
- 存储引擎分为很多种类(Linux中的FS)。
- 不同存储引擎的区别:存储方式、安全性、性能。
数据库创建时:库和表的名字一定要小写。
数据库物理结构大小单位
- 段:由多个区构成,理论上一个表就是一个段。
- 区:由连续的多个页组成,理论上一条数据就是一个区,默认为1M。
- 页:数据库中的最小存储单元,默认是16K。
- 分区表:一个区构成一个段就是一个表。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DevOps Technology Stack!
评论