SQL的执行过程讲解

2022/4/27 2:12:40

本文主要是介绍SQL的执行过程讲解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.MySQL 属于CS结构即客户端/服务端,Client、Server。其中server层包含连接层、SQL层、存储引擎层

    

 

 

 

2.Server端的连接层、SQL层、存储引擎层

连接层(Connector):负责跟客户端建立连接、获取权限、维持和管理连接。


SQL 层:预处理、解析、优化(物理优化、逻辑优化)、生成指定的执行计划。


存储引擎层:负责数据的存储和提取,支持 InnoDB、MyISAM、Memory 等多个存储引擎。

3.连接层

作用:提供连接协议、验证、提供专用连接线程
命令:mysql -h$ip -P$port -u$user -p  
客户端发送请求服务端,通过一串字符串连接到整个服务端,同时服务端的连接层接收到请求后,对客户端提供的字符串进行验证,连接层提供协议、验证、再提供一个专有的连接线程。
其中协议有:TCP/IP、Socket文件。
     验证:用户名、密码、端口进行验证,数据库启动后会将授权表加载到内存中,进行用户名,密码,端口进行比对验证。其中授权表包含:mysql.user、mysql.db、mysql_table.priv、mysql_column_priv.
  连接线程:每连接一个都会生成一个连接线程,所以会有多个连接线程.通过show processlist; 可以查看到前台线程。

4.SQL层

主要分为四个阶段:预处理、解析、优化、执行语句

预处理:判断语句中的语法、语义、权限处理等。

  解析:校验OK,就生成“解析树”,把语句拆分成多个块,生成一种树形结构来表示执行顺序。解析出来的树叫抽像语法树AST。

  优化:分为逻辑优化-->物理优化。基于 Cost-Based Optimizer 模型,预估每条执行方式的成本,选择成本最小的执行方式,最终转化为执行计划explain
       逻辑优化:优化器算法--->关系代数的等价转换
       物理优化:统计信息(表的状态信息,比如表名、数据行、数据分布、索引状态信息)、优化器算法
  执行:根据执行计划去执行语句

5.存储引擎层

作用:负责和磁盘交互

 

 

 

 



这篇关于SQL的执行过程讲解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程