MySQL 执行过程

栏目: 数据库 · 发布时间: 5年前

内容简介:mysql 主要由, server层和存储层两部分构成.server 层主要包括连接器, 查询缓存, 分析器, 优化器, 执行器连接器主要负责将mysql 客户端和服务端建立连接,会获取当前用户的权限. 这里获取到的权限对整个连接都有效,一旦连接成功后,如果使用管理员账号对用户更改查询,在当前连接中拥有的权限保持不变,值有等到下次重新连接才会更新权限
select 
	student.id as studentId,  
	student.name as studentName,
	student.age as studentAge,
	student.sex as studentSex,
	dept.name as deptName
from student
left join dept on student.deptId = dept.id
where student.id = '1'
order by student.age desc
复制代码

sql **执行过程

mysql 主要由, server层和存储层两部分构成.

MySQL 执行过程

server 层主要包括连接器, 查询缓存, 分析器, 优化器, 执行器

MySQL 执行过程

连接器

MySQL 执行过程

连接器主要负责将 mysql 客户端和服务端建立连接,会获取当前用户的权限. 这里获取到的权限对整个连接都有效,一旦连接成功后,如果使用管理员账号对用户更改查询,在当前连接中拥有的权限保持不变,值有等到下次重新连接才会更新权限

查询缓存

MySQL 执行过程

连接成功之后,即开始要正式执行 select 语句了, 但是在执行查询之前, mysql 会去看下有没有该条语句的查询缓存内容,如果有缓存 直接从缓存中读取并返回结果, 不需要在执行后面的步骤, 结束查询操作. 如果没有缓存则接着往后执行,并将执行语句和结果保存到缓存中

注意: mysql8 之后已经没有这个功能了, 因为这个缓存区太容易刷新,效果并不是太大

解析器

MySQL 执行过程

当没有查询到缓存, 就需要开始执行 sql 语句了, 在执行之前肯定需要对 sql 语句进行解析.

分析器主要对 sql 语句进行语法和语义分析, 检查单词拼写是否错误, 还有检查要查询的表或字段是否存在,如果分析器检测出有错误就会返回类似 "you have an error in you sql " 这样的错误信息,并结束查询操作.

优化器

当通过分析器之后, mysql 算是理解了你要执行的操作,但是通常对于一个 sql , mysql 内部可能存在多种执行方案,比如存在多个索引,该选择哪个索引,多个表关联查询,怎么确认各个表的连接顺序.

多个方案的执行结果都一样,但是执行效率不一样,所以mysql在执行之前需要尝试找出最优方案来,这就是优化器主要工作

执行器

当经过优化器后,就到了执行器执行sql了. 在前面连接器处已经读取到当前用户的权限了, 连接器中只是获取到权限,并没有对权限进行判断和效验.

所以在执行器中, 在执行语句之前会判断权限, 如果没有对应的权限则会直接返回并提示没有相关权限.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

零基础学C语言

零基础学C语言

康莉//李宽 / 机械工业 / 2009-4 / 48.00元

《零基础学C语言》的特点是内容全面、翔实,通俗易懂,循序渐进地介绍了C语言各方面的知识,重点突出。《零基础学C语言》含有大量实例,代码短小精炼,紧扣所讲要点的本质,以加深读者的印象,同时结合笔者多年使用C语言的经验,阐述了很多代码编写技巧,读者可将代码复制到自己的机器上进行实验,自行实践和演练。C语言是编程方式灵活多样、功能强大、应用广泛的一种程序设计语言。从程序设计语言的发展历程来看,尽管后来出......一起来看看 《零基础学C语言》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具