SQL语句是如何执行的?

平时在开发中肯定经常用到MySQL,但是你知道一条SQL语句是如何执行的吗?,我们先看一下下图展示的MySQL的基本架构!

MySQL架构图

从上图中我们能发现,MySQL的架构大致分为Server层和存储引擎层两层结构!

Server层涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)。

存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。InnoDB是最常用的存储引擎,它从MySQL 5.5.5版本开始成为了默认存储引擎。

连接器

连接器负责跟客户端建立连接、获取权限、维持和管理连接。就是我们登录过程的一系列操作。

查询缓存

MySQL在执行一个具体的查询请求前会去对比之前是否执行过此查询,若执行过则直接返回数据,若没有执行过则会继续执行后续步骤。(只要表更新,这个表的查询就会失效,不用担心数据更新不及时的问题)

分析器

当没有命中缓存时,MySQL执行就来到了这一步,他会将我们输入的命令拆分成一个个具体的词,分析我们的输入是否有问题!一般有错误都会出现 ’You have an error in your SQL syntax‘的提示,这个时候我们主要关注’use near‘前后的内容就很容易找到错误位置了!

优化器

我们输入的语句符合MySQL的规范时,在执行前还有一个很重要的步骤,优化操作步骤,例如一个表里有多个索引,优化器会决定使用哪个索引。

执行器

经历了上述的所有步骤之后,MySQL就来到了执行器步骤,最后一步就是执行我们的SQL语句,返回我们需要的结果了!

你知道MySQL的执行步骤了吗?如果对你有帮助欢迎关注

发表回复