mysql:一条sql查询语句是如何执行的

1、mysql的基本架构示意图如下所示:
在这里插入图片描述
2、mysql支持多个存储引擎,默认的存储引擎是InnoDB。

3、连接器:连接器负责跟客户端建立连接、获取权限、维持和关联连接。

4、查询缓存:mysql接收到查询请求时,会先从缓存中查看该sql是否执行过,如果有,则直接返回缓存中的结果,如果没有,才继续后面的阶段。当然,缓存的功能在mysql8版本以上已经被去除了。–也就是以后的版本没有查询缓存这个步骤。

5、分析器:主要进行词法分析和语法分析。

6、优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引,或者在一个语句有多表关联的时候,决定各个表的连接顺序。

7、执行器:先判断对该表是否有查询权限,如果没有,返回没有权限的错误。如果有,则打开表继续执行。执行器会根据表的引擎定义,去使用这个引擎提供的接口。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值