mysql:一条sql查询语句是如何执行的

1、mysql的基本架构示意图如下所示:
在这里插入图片描述
2、mysql支持多个存储引擎,默认的存储引擎是InnoDB。

3、连接器:连接器负责跟客户端建立连接、获取权限、维持和关联连接。

4、查询缓存:mysql接收到查询请求时,会先从缓存中查看该sql是否执行过,如果有,则直接返回缓存中的结果,如果没有,才继续后面的阶段。当然,缓存的功能在mysql8版本以上已经被去除了。–也就是以后的版本没有查询缓存这个步骤。

5、分析器:主要进行词法分析和语法分析。

6、优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引,或者在一个语句有多表关联的时候,决定各个表的连接顺序。

7、执行器:先判断对该表是否有查询权限,如果没有,返回没有权限的错误。如果有,则打开表继续执行。执行器会根据表的引擎定义,去使用这个引擎提供的接口。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_28893679/article/details/89350299