一条SQL查询语句是如何执行的?

大纲视图

在这里插入图片描述

MYSQL基本架构图

在这里插入图片描述

连接器的作用是什么?

连接器负责跟客户端建立连接、获取权限、维持连接

查询缓存是什么?什么时候会查询缓存?什么时候会清除缓存?

MYSQL拿到一个SELECT查询语句后会先到查询缓存里看看之前是不是执行过这个语句,之前执行过的语句会以key-value形式缓存在内存,key是查询的语句,value是查询到的结果。如果能够在缓存中找到这个key,那么对应的value会直接返回给客户端。
查询缓存的失效非常频繁,只要对一个表有更新,这个表上的所有缓存都将被清除。MYSQL8.0已移除查询缓存

分析器的作用是什么?

分析器主要是对SQL语句做解析,会根据词法分析的结果判断该条SQL语句的语法是否符合MYSQL规范,以及表和表字段是否存在

优化器的作用是什么?

优化器的作用是MYSQL内部对语句作出的优化,例如有多个索引时决定使用哪个索引,或者一条语句有多个表join时决定各个 表的连接顺序。

执行器执行 SQL的流程是怎样的?

执行器的作用是操作引擎,获取返回结果。

执行流程如下:

  1. 调用 InnoDB 引擎接口取这个表的第一行,判断是否满足条件,如果不是则跳过,如果是则将这行存在结果集中;
  2. 调用引擎接口取“下一行”,重复相同的判断逻辑,直到取到这个表的最后一行。
  3. 执行器将上述遍历过程中所有满足条件的行组成的记录集作为结果集返回给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值