SQL语句的执行过程

目录

1.MySql的基础架构:分为两层

2.连接器:登录MySql时的身份认证

3.查询缓存:执行查询语句时先查询缓存(MySql8.0后移除)

4.分析器:缓存中未命中,SQL语句通过分析器

5.优化器:MySql进行优化执行

6.执行器:执行SQL语句并从存储引擎返回数据

7.SQL语句的执行过程


1.MySql的基础架构:分为两层

Server层:包括连接器、查询缓存、分析器、优化器、执行器等,所有的跨存储引擎功能都在这一层实现,比如视图、函数、触发器

存储引擎:主要负责数据的存储与读取,支持InnoDB、MyISAM等多个存储引擎;InnoDB是MySQL的默认存储引擎

2.连接器:登录MySql时的身份认证

功能:负责用户登录数据库时的身份认证和权限操作:验证账号密码

                若认证通过,连接器到权限表查询用户的权限,读取权限数据

3.查询缓存:执行查询语句时先查询缓存(MySql8.0后移除)

功能:缓存执行了SELECT语句后的结果

           建立连接后,查询语句会先去缓存中查询

                缓存中命中,则直接返回结果

                缓存未命中,则执行语句并将结果缓存,方便之后调用

注意:

一般不推荐使用缓存,因为CURD场景频繁时,缓存很容易失效;该功能在MySql8.0后被删除

4.分析器:缓存中未命中,SQL语句通过分析器

功能:检查SQL语句格式并解析SQL语句

                首先分析SQL语句中的关键字,SELECT..FROM...WHERE..等,找到相关数据

                其次分析SQL语句是否正确

5.优化器:MySql进行优化执行

功能:MySql按照优化方案执行

6.执行器:执行SQL语句并从存储引擎返回数据

功能:先查询用户权限

                有权限:从存储引擎中返回执行结果

                无权限:返回错误

7.SQL语句的执行过程

  • SQL语句执行过程中,先判断是否有权限
  • 有权限则先查询缓存,无权限返回错误信息
  • 缓存未命中则经过分析器进行SQL解析与验证
  • 经过分析器后找到相关数据(比如用到的表名、字段名),进入优化器确定优化方案
  • 按照优化方案执行
  • 执行完毕从存储引擎中将执行结果返回

                文章来源地址https://uudwc.com/A/6X3r8

原文地址:https://blog.csdn.net/ggggggzzzzz/article/details/131565313

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月06日 06:52
下一篇 2023年07月06日 06:52