当前位置:网站首页>关系型数据库-MySQL:体系结构
关系型数据库-MySQL:体系结构
2022-08-04 05:26:00 【focus_lyh】
一、CS模型
tcp/ip
socket
二、实例构成
实例 = mysqld + 预分配的内存
= mysqld + Mseter Thread + N个工作线程 + 预分配的内存结构
老板 经理 员工 办公区
三、mysqld 的结构
范例讲解: 一条SQL语句的执行过程
命令:select user,host from mysql.user;
step1:连接层
- 提供连接协议
tcpip
socket - 提供验证功能
用户 密码 IP合不合法 - 提供专用的连接线程
接收SQL
返回结果
step2:SQL层
- 验证语法
- 语义检查:检查是什么类型的语句(DDL、DCL、DML、DQL)
- 权限检查:检查登录用户是否具备执行某些语句的权限
- 解析器: 将SQL语句解析成多种执行计划(预处理)
- 优化器: 根据解析器解析出的执行计划的“代价”评估,选择代价最小的
代价: 系统资源的消耗(CPU,MEM,IO) - 执行器: 根据选择后的执行计划,运行SQL语句,得出执行结果.
执行结果?
你需要的数据,在磁盘的xxxx位置上。 - 查询缓存
- 日志记录(二进制)
step3:存储引擎层(文件系统)
拿着执行器的结果,去磁盘找到相应的数据。结构化成用户能看懂的格式(表)
四、mysql 数据库的逻辑结构
- 库 : database / schema
- 表 : tables
列(字段): 列名,列的定义(数据类型,约束等)
行: 记录
五、mysql 对象的物理存储结构
库 ----> 目录
表 ----> 两个文件
例如:t1表
-rw-r----- 1 mysql mysql 8556 Mar 30 11:58 t1.frm
-rw-r----- 1 mysql mysql 98304 Mar 30 11:58 t1.ibd
t1.frm -----> 存储列的定义信息
t1.ibd -----> 存储数据行,索引
六、段、区、页
idb文件又被称之为一个表段;区,就是连续的多个页;一个段会有多个区构成;页(16kb)是最小的分配单元。
形象对比:
mysql | 磁盘 |
---|---|
段 | 分区 |
区 | 文件系统 |
页 | block |
边栏推荐
猜你喜欢
随机推荐
自己学习爬虫写的基础小函数
力扣:343. 整数拆分
如何低成本修bug?测试左移给你答案
跳转页面实时调用后台接口,更新页面数据
显式调用类的构造函数(而不是用赋值构造),实现一个new操作
CentOS7 - yum install mysql
MySql数据恢复方法个人总结
即时通讯网 即时通讯音视频开发
webtrc 中VideoAdapter类中的作用及局限
大龄程序员的心理建设
9、动态SQL
Unity动画生成工具
字符串常用方法
Web Basics and Exercises for C1 Certification - My Study Notes
webrtc中视频采集实现分析(二) 视频帧的分发
thymeleaf中onclick事件动态传递参数问题
手把手教你实现buffer(二)——内存管理及移动语义
MySQL数据库面试题总结(2022最新版)
Embedded system driver primary [3] - _IO model in character device driver foundation
12、分页插件