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

MySQL 都有哪些零件?

1.链接器:管理链接,权限验证。2.分析器:词法分析,语法分析。3.优化器:执行计划生成,索引选择。4.执行器:操做存储引擎,返回结果。5.存储引擎:存储数据,提供读写接口。python

链接器

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

mysql -h $ip -u root -p

查询缓存

创建好链接以后,咱们就可使用 SELECT 语句了,执行逻辑就会来到第二步:查询缓存。MySQL 会如今查询缓存看看以前是否是执行过这条语句,若是有就直接返回。在 MySQL 8.0 以后,此模块已被移除。linux

分析器

若是没有查询缓存,从这里 MySQL 就要开始分析咱们要干什么,须要对咱们编写 SQL 语句进行分析。分析器会先作词法分析,识别出字符串以及它表明的含义。而后再进行语法分析,判断咱们编写的 SQL 语句有没有错误,若是有错误就会抛出错误。sql

优化器

通过了分析器以后,MySQL 知道你要干什么了,此时优化器会根据表结构以及语句目的来决定使用哪一个方案。数据库

执行器

MySQL 经过分析器知道了咱们要作什么,经过优化器知道了该怎么作效率最高。因而就能够进入执行器,真正执行 SQL 语句了。缓存

select * from users where name = ‘operator'

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

福利:豆花同窗为你们精心整理了一份关于linux和python的学习资料大合集!有须要的小伙伴们,关注豆花我的公众号:python头条!回复关键词“资料合集”便可免费领取!优化

相关文章
相关标签/搜索