MySQL精进(一):图解MySQL系统架构
问题引入
MySQL如何接收到请求并执行SQL的?
要想回答这个问题,我们需要先看下MySQL的系统架构,了解MySQL的不同组件如何分工合作完成SQL的执行。
下面,先看一张图:
上图是MySQL的系统分层架构图。图中有六大核心组件是我们需要关注的:
Query Cache:查询缓存,这个是对SQL查询语句的结果进行缓存的组件.
Query Parsing:查询解析器,负责解析SQL语句,先进行词法解析再进行语法解析。
Optimization:优化器,负责对SQL语句进行优化,比如优化索引的选择
Execution:执行器,负责执行优化器生成的执行计划。
Storage Engine:存储引擎,负责数据的存储。
Connector:Connector在图中没有表现出来,其实它处于C Client Api层,负责处理和客户端的连接请求建立和接收客户端的SQL请求
MySQL和我们应用程序如何交互
了解了MySQL的组件在执行SQL过程中的工作交互流程,那么我们再思考下:我们基于java开发web应用程序,部署在Tomcat中,在web应用程序发起一次SQL执行请求时,整条链路的流程是怎样的?
下面,我们还是用一张图来介绍:
通过上面的介绍,我们就清楚了MySQL的系统架构以及它的工作流程。
回顾总结
这篇简单介绍了MySQL的分层架构,了解在分层架构下SQL是如何去完成被执行的。