MySQL1:一条SQL语句如何运行

 组件作用:

1•连接器: 身份认证和权限相关(登录 MySQL 的时候)。

2•查询缓存:  执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。

3•分析器:  没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。

4•优化器: 按照 MySQL 认为最优的方案去执行。

5•执行器:  执行语句,然后从存储引擎返回数据。

 

总结:

1•MySQL 主要分为 Server 层和引擎层,Server 层主要包括连接器、查询缓存、分析器、优化器、执行器,同时还有一个日志模块(binlog),这个日志模块所有执行引擎都可以共用,redolog 只有 InnoDB 有。

2•引擎层是插件式的,目前主要包括,MyISAM,InnoDB,Memory 等。

3•SQL 等执行过程分为两类,一类对于查询等过程如下:权限校验---》查询缓存---》分析器---》优化器---》权限校验---》执行器---》引擎

4•对于更新等语句执行流程如下:分析器----》权限校验----》redo log prepare---》执行器---》引擎---》binlog---》redo log commit

猜你喜欢

转载自blog.csdn.net/qq_42198024/article/details/108399163