当前位置:网站首页>关系型数据库-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 |
边栏推荐
猜你喜欢
C language -- operator details
7.15 Day21---MySQL----Index
8、自定义映射resultMap
scrapy 爬取当当图书名字图片
自动化测试的成本高效果差,那么自动化测试的意义在哪呢?
Embedded system driver primary [4] - under the basis of character device driver _ concurrency control
MySQL数据库面试题总结(2022最新版)
FPGA学习笔记——知识点总结
8.03 Day34---BaseMapper查询语句用法
Summary of MySQL database interview questions (2022 latest version)
随机推荐
如何低成本修bug?测试左移给你答案
EntityComponentSystemSamples学习笔记
实现登录密码混合动态因子,且动态因子隐式
跳转页面实时调用后台接口,更新页面数据
字符串常用方法
4.1 声明式事务之JdbcTemplate
Swoole学习(一)
Delphi-C端有趣的菜单操作界面设计
canal实现mysql数据同步
CentOS7 - yum install mysql
Unity DOTS学习教程汇总
MySql data recovery method personal summary
PHP实现异步执行程序
4.3 基于注解的声明式事务和基于XML的声明式事务
webrtc中的视频编码(一) 视频编码模块轮廓
npm安装依赖报错npm ERR! code ENOTFOUNDnpm ERR! syscall getaddrinfonpm ERR! errno ENOTFOUND
Unity自动生成阻挡Collider的GameObject工具
Linux环境下redis的下载、安装和启动(建议收藏)
Unity开发类似Profile那样的数据分析工具
力扣:96.不同的二叉搜索树