vlambda博客
学习文章列表

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是如何去完成被执行的。