ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL的执行过程讲解

2022-04-26 23:04:33  阅读:149  来源: 互联网

标签:连接线 mysql 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.存储引擎层

作用:负责和磁盘交互

 

 

 

 

标签:连接线,mysql,SQL,讲解,执行,优化,连接
来源: https://www.cnblogs.com/linuxmysql/p/16197045.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有