1.MySQL逻辑架构剖析图(简)
2.MySQL逻辑架构剖析图(细)
3.MySQL各架构层分析
1.连接层
-
系统(客户端)访问MySQL服务器之前,做的第一件事就是建立TCP连接
-
经过三次握手之后建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份验证、权限获取
-
TCP连接收到请求后,必须要分配一个线程专门与这个客户端进行交互,所以还会有一个线程池,省去创建和销毁线程的开销
2.服务层
-
Parser 解析器
SQL命令传递到解析器时,会被解析器验证和解析,并为其创建语法树,MySQL还会对SQL查询进行语法上的优化,进行重写
-
Optimizer 查询优化器
SQL语句在语法解析之后,查询之前会使用查询优化器确定SQL语句的执行路径,生成一个执行计划
这个执行计划表明应该使用哪些索引进行查询… 最后会按照执行计划中的步骤调用存储引擎提供的方法来执行查询
-
SQL interface SQL接口
接收用户的SQL命令,并且返回用户需要查询的结果
3.存储层
所有的数据、数据库、表的定义、表的每一行内容、索引,都市存储在文件系统上,以文件的方式存在的,并完成与Innodb等存储引擎的交互。