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

在这里插入图片描述
数据库是由一个个文件组成的(一般是二进制文件),想要对这些文件进行select insert等操作,则需要通过数据库实例来完成对数据库的操作

1.连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接,连接的用户过多,会报oom
2.查询缓存:mysql8之前,做一次查询的时候,会在内存中存取一个kv,记录当前查询的sql和结果,如果查询的时候有直接返回,但是一张表,有了更新之后,所有的查询都会失效,mysql8之后取消了查询缓存
3.分析器:对一条sql语句做具体的分析,比如查询会有select 后面是查询的具体字段 from之后是表 where后面是条件,可能from之后表没有或者select字段不对都会直接返回错误
4.优化器:对sql做出具体的优化,比如会选择哪个索引,left join的时候会选择小表驱动大表等
5.执行器:对语句去做具体的执行,比如对一个表做查询,如果没有索引,id=2,从第一行开始向下查询直到最后一行,有索引就会查询所有为2的然后返回
6.存储引擎:就是具体的常见的innodb mysam这种

备注:参考极客时间MySQL45讲做的笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值