Mysql——Sql的执行过程
目录
-
- 一、Sql的执行过程流程图解
- 二、Sql的执行过程流程
-
- 1.2.1、建立连接
- 1.2.2、服务层(缓存、解析器、预处理器、优化器、执行器)
-
- 1.2.2.1、缓存
- 1.2.2.2、解析器
- 1.2.2.3、预处理器
- 1.2.2.4、优化器
- 1.2.2.5、执行器
- 1.2.3、引擎层
一、Sql的执行过程流程图解
-
Sql的执行过程
二、Sql的执行过程流程
1.2.1、建立连接
- 当客户端执行一条sql,跟远程数据库建立连接,并验证用户名及密码,如果验证通过,执行到MySql的服务层;
1.2.2、服务层(缓存、解析器、预处理器、优化器、执行器)
1.2.2.1、缓存
- MySql的服务层通过缓存来进行查询,缓存中的数据是以key、value方式进行存储(key就是当前的SQL语句,alue就是对应的数据)
- 注:在MySql5.7之后,缓存默认已经不开启,并且在MySql8之后就完全弃用掉,因为通常存在缓存当中的数据是一些不太会变的数据,但是在数据库当中的数据通常都是变化比较多的,导致缓存没办法命中,从而使这一块的逻辑性能浪费掉了。所以MySql把缓存交给了应用层,数据库层不做缓存处理。
1.2.2.2、解析器
- 如果没有缓存,会经过解析器,解析器主要解析sql语句的语法是都正确;