1、逻辑架构
1.1、连接层
客户端访问MySQL服务器时,进行TCP连接。
- 一个系统只会和MySQL服务器建立一对一的连接吗?
- 多个系统都可以和MySQL建立连接,每个系统建立的连接也可以不止一个。为了解决TCP连接无限创建与TCP频繁创建销毁带来的资源耗尽、性能下降的问题。MySQL服务器里有专门的TCP连接池限制连接数,采用长连接模式复用TCP连接,来解决上述问题。
连接层还设置线程池与客户端进行交互,每个连接从线程池中获取线程,省去了创建和销毁线程的开销。
1.2、服务层
- SQL接口:接收用户的 SQL命令并返回结果
- 解析器:对SQL命令创建语法树
- 查询优化器:根据语法树确定SQL的执行路径,生成执行计划
- 查询缓存:MySQL8.0中删除
1.3、引擎层
插件式的存储引擎,负责了MySQL中的数据的存储和提取,对物理服务器级别维护的底层数据执行操作。
2、SQL执行流程
查询流程