0
点赞
收藏
分享

微信扫一扫

Mysql 执行一条语句的过程

天蓝Sea 2022-01-26 阅读 78

Mysql的逻辑架构

Mysql的逻辑架构如下所示,整体分为两部分,Server层和存储引擎层

与存储引擎无关的操作都是在Server层完成的,存储引擎层负责数据的存取。
在这里插入图片描述

连接器

这一步主要是管理连接权限验证

负责管理客户端的连接,比如mysql -u root -p,就是客户端与连接器之间完成的,连接分为长连接和短连接,建议使用长连接,因为建立连接是相对复杂的一个过程。但是长连接也有优化的空间,即长连接过多,随着执行大的查询操作,会占用较多的内存。

建立连接完成之后,连接器会判断该用户的权限,之后用户的操作都会基于权限来判定是否允许。

分析器

这一步主要是词法分析语法分析

词法分析主要是判定用户想做什么,比如select 就是想要查询。

语法分析主要是判定用户输入的SQL是否符合Mysql的语法。

优化器

经过分析器,Mysql已经知道用户想要干什么了,但是对于相同的一条SQL语句,对于Mysql具体实施的时候,可能有多种方法去实现,效率也就不一样。

在优化器这一步,mysql需要判定怎么样执行才是最优的效率。

执行器

这一步主要是操作引擎和返回结果。通过操作存储引擎层来遍历一张数据表,去寻找符合条件的数据,并且返回给客户端。

举报

相关推荐

0 条评论