MySQL是典型的C/S架构
(客户端/服务器架构),客户端进程向服务端进程发送一段文本(MySQL指令),服务器进程进行语句处理然后返回执行结果。
问题来了。服务器进程对客户端发送的请求究竟做了什么处理呢?本文以查询请求为例,讲解MySQL服务器进程的处理流程。
如下图所示,服务器进程在处理客户端请求的时候,大致需要进行3个步骤:
- 处理连接
- 解析与优化
- 存储引擎
接下来我们来详细了解一下这3步具体都做了什么。
1. 处理连接
客户端向服务器发送请求并最终收到响应,本质上是一个进程间通信的过程。
MySQL有专门用于处理连接的模块——连接器。
1.1 客户端和服务端的通信方式
1.1.1 TCP/IP协议
TCP/IP
协议是MySQL客户端和服务器最常用的通信方式。
我们平时所说的MySQL服务器默认监听的端口是3306