SQL语句的执行过程

MySQL服务器分为两层,包括连接器、查询缓存(8.0后移除)、分析器、优化器和执行器。连接器负责身份认证和权限检查,分析器解析SQL语句,优化器选择最佳执行计划,执行器则执行SQL并返回数据。存储引擎如InnoDB处理数据的存储和读取。查询缓存因易失效而不常使用。
摘要由CSDN通过智能技术生成

目录

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解析与验证
  • 经过分析器后找到相关数据(比如用到的表名、字段名),进入优化器确定优化方案
  • 按照优化方案执行
  • 执行完毕从存储引擎中将执行结果返回

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值