关于云计算:当面试官问-SQL-查询语句如何执行时

4次阅读

共计 779 个字符,预计需要花费 2 分钟才能阅读完成。

想要答复这个问题,首先咱们须要晓得:MySQL 都有哪些整机?

1. 连接器:治理连贯,权限验证。
2. 分析器:词法剖析,语法分析。
3. 优化器:执行打算生成,索引抉择。
4. 执行器:操作存储引擎,返回后果。
5. 存储引擎:存储数据,提供读写接口。

连接器

第一步,咱们会先连贯到 MySQL 数据库,此时就是连贯上连接器。连接器负责和客户建设连贯,获取权限,维持和治理连贯。

mysql -h $ip -u root -p

查问缓存

建设好连贯之后,咱们就能够应用 SELECT 语句了,执行逻辑就会来到第二步:查问缓存。MySQL 会当初查问缓存看看之前是不是执行过这条语句,如果有就间接返回。在 MySQL 8.0 之后,此模块已被移除。

分析器

如果没有查问缓存,从这里 MySQL 就要开始剖析咱们要干什么,须要对咱们编写 SQL 语句进行剖析。分析器会先做词法剖析,辨认出字符串以及它代表的含意。而后再进行语法分析,判断咱们编写的 SQL 语句有没有谬误,如果有谬误就会抛出谬误。

优化器

通过了分析器之后,MySQL 晓得你要干什么了,此时优化器会依据表构造以及语句目标来决定应用哪个计划。

执行器

MySQL 通过分析器晓得了咱们要做什么,通过优化器晓得了该怎么做效率最高。于是就能够进入执行器,真正执行 SQL 语句了。

select * from users where name =‘operator'

假如 users 表中,name 字段上没有建设索引,那么执行器调用 InnoDB 引擎接口取第一行,判断 name 是不是等于 operator,如不是则跳过,如果是就放在后果集中。而后再调用引擎接口取下一行,反复雷同的逻辑判断,直到取到这个表的最初一行。最初将后果集返回给客户端。

更多文章和材料 ↓↓↓
阿里云 K8s 实战手册 K8s
阿里云 CDN 排坑指南 CDN
ECS 运维指南 ECS
DevOps 实际手册 DevOps
Hadoop 大数据实战手册 Hadoop

正文完
 0