1 MySQL逻辑架构分析
1.1服务器处理客户端请求
MySQL是典型的C/S架构(Client/Sever架构),服务器端使用的mysqld
1.2Connectors
针对不同的语言需要和服务器进行交互,这个结构就是connectors,建立连接
- 一共有三层
1.2.1 连接层
- 为了一个系统能和MySQL服务器建立多个连接,同时有多个系统和MySQL服务器建立连接,所以有连接池
- 连接池分两个:
1.TCP连接池:限制连接数
2.线程池
1.客户端和MySQL服务器,先建立TCP连接,经过三次握手建立连接成功后
2.MySQL服务器TCP对传输过来的账号密码做身份验证、权限获取
1.2.2 服务层
-
SQL Interface:SQL接口
接受用户的SQL命令,并返回查询结果 -
Parser:解析器
主要生成解析树
-
Optimizer:查询优化器
-
一条查询可以有很多种执行方式,最后都返回相同的结果,优化器的作用是找到其中最好的执行计划
优化完以后会生成一个执行计划 -
Caches & Buffers:查询缓存组件(8.0之后没有)
查询缓存不同客户端共享
1.2.3 引擎层
- 插件式的,我们可以选择用哪一个
- 真正负责了MySQL中数据的存储和提取,对物理服务器级别维护的底层数据执行操作
1.3 存储层
2 执行流程
2.1 MySQL中的SQL执行流程
2.2 实例
2.2.1查看方式
- 打开profile
set profiling = 1; - 可查看刚刚共执行了哪些操作
show profiles
- 想要查看具体一条
比如第7条
show profile for query 7