Mysql 架构和工作流程

一 Mysql 架构分层

总体上,我们把Mysql分为三层:

建立连接和交互的客户端
真正执行操作的服务层
跟硬件打交道的存储引擎层

在这里插入图片描述

二 Mysql 查询过程

(1) 查询过程
在这里插入图片描述

看图了解Mysql查询大致过程:

  1. 客户端向服务端发起一条请求(这里建立通信过程)
  2. 服务端先检查缓存,如果命中缓存,直接返回结果,否则进行下一阶段
  3. 服务器进行sql解析和预处理,再经过查询优化器形成对应的执行计划
  4. mysql根据执行计划,调用API给存储引擎, 进行数据的读取和存储
  5. 缓存查询结果,并将结果返回给客户端

三 Mysql 通信过程

首先,Mysql必须要运行一个服务, 监听默认的3306端口
我们开发系统和第三方对接的时候,必须弄清两件事。
第一个是通信协议
第二个是消息格式

1 通信协议

通信类型: 同步或异步

同步通信特点:
(1) 同步通信依赖呗调用方, 受限于被调用放的性能。也就是i说, 应用操作数据库,线程会阻塞,等待数据库的返回。
(2)一般至能做到一对一。

异步通信特点:
(1)避免阻塞等待,但是不能节省SQL执行时间。
(2)如果异步存在并发,每一个SQL的执行都要单独建立一个连接,避免数据混乱

连接方式: 长连接或短连接

短连接: 操作完,马上close掉
长连接: 可以保持打开,减少服务端创建和释放连接的消耗,
		后面的程序访问还可以使用这个连接。

通信协议

通信协议主要有四种: Unix Socket, 内存共享, 命名管道, TCP/IP 协议

Unix套接字:适合Unix和Lunix系统, 客户端和Mysql服务器在同一台电脑上
内存共享和命名管道: 适合Window系统, 客户端和Mysql服务器在同一台电脑上
TCP/IP:任何系统下都可以使用  
2 通讯方式

一般通讯方式:

单工:   两台计算机通信时,数据传输是单向的。  如:遥控器
半双工: 两台计算器通信时, 数据传输是双向的,但是不能同时发。 如: 对讲机
双工:   两台计算机通信时,数据传输是双向的,并且可以同时传输。

mysql使用半双工的通讯方式。

要么客户端向服务端发送数据,要么服务端向客户端发送数据。所以, Mysql的语句不管多大,都是一次性发送。
3 通讯过程

mysql客户端和服务的交互过程
主要分为两部分: 握手认证阶段, 命令执行阶段

3.1 握手认证阶段

服务器 -> 客户端: 握手初始化消息
客户端 -> 服务端:登录认证消息
服务端 -> 客户端: 认证结果消息

3.2 命令执行阶段

客户端 -> 服务端: 执行命令消息
服务端 -> 客户端: 命令执行结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值