《mysql基础》第1集 mysql的结构及查询语句的执行顺序

mysql的基本组成部分

1.连接器:负责处理客户端的链接/请求

2.分析器:词法分析/语法分析/判断语句是否正确

3.优化器:优化执行语句,选择连接方式/索引

4.执行器:操作引擎,返回结果

5.存储引擎:存储数据,提供操作接口

上面的五个部分就是mysql的基本组成部分。

一般1-4是Server层。5是单独的存储引擎。因为存储引擎会有多种实现方案,比如innodb,memory等。

一条查询语句的执行顺序

1:连接器接受到链接,长链接-短链接。长链接的缓存会慢慢累加,所以注意长链接的超时时间。链接在新建的时候会校验权限,但是建立连接之后的权限修改不会影响已经存在的链接,所以要注意

2:查询缓存,一般情况下,msql的缓存会缓存之前执行的查询sql返回的结果,key是查询语句,value是查询结果。如果命中,则直接返回,没有的化会从存储引擎中查询。不过查询缓存弊大于利,只要有该表的修改语句执行,那么该表上的所有缓存就会失效。而且mysql8.0版本已经废弃掉查询缓存了。

3:如果查询缓存没有命中的化,就会到分析器,分析器会进行词法分析/语法分析。判断执行语句是否满足mysql的执行要求,否则会报错,You have an error in your SQL syntax

4:优化器会判断关联表查询的顺序,还会选用索引,这部分比较复杂,

5:优化之后的语句就会到执行器,执行器执行之前会校验当前用户是否有权限查询表,如果有就会选中数据行,判断是否符合条件,符合的化就加入结果集,不符合继续,直到索引的执行完毕或者表的最后一行。

上面就是查询语句的执行顺序

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值