028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQL查询语句执行流程是什么

这篇“MySQL查询语句执行流程是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL查询语句执行流程是什么”文章吧。

10年积累的成都做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有叠彩免费网站建设让你可以放心的选择与我们合作。

架构图

MySQL查询语句执行流程是什么

解析器

解析器的作用是对客户端传来的 SQL 语句进行以下工作:

MySQL查询语句执行流程是什么

预处理器

解析器主要是检查语法词法方面,但是如果语法词法都正确,但是表、字段是不存在的,那么这段 SQL 语句也是无法正确执行的。

所以预处理器的作用是:语义解析,判断解析树的语义是否正确,表、字段这些是否存在,预处理后会得到一颗新的解析树。

查询优化器

查询优化器结构

MySQL查询语句执行流程是什么

在 MySQL 中一条 SQL 语句的执行方式有多种,虽然最终都会得到相同的结果,但是存在开销上的差异,具体选择哪一种执行方式是由查询优化器来决定的。比如说:

查询优化器是基于开销(cost)的优化器,它的工作原理是根据解析树生成的多种执行计划,会评估各种执行方式所需的开销(cost),最终会得到一个开销最小的执行计划作为最终方案

但是这个开销最小的执行方式不一定是最优的执行方式,比如本该使用索引,却进行了全表扫描等。虽然查询优化器中有《优化》两个字,但是这个优化并不是万能的,很多时候更加需要考虑 SQL 语句书写得是否合理。

逻辑查询优化

逻辑查询优化主要负责进行一些关系代数对 SQL 语句进行优化,从而使 SQL 语句执行效率更高

逻辑查询优化我们可以使用几个案例来简单理解

物理查询优化

物理查询优化主要做的工作是根据 SQL 语句分别对多种执行计划进行开销的评估

物理查询优化主要解决以下几个问题:

简单了解一下代价评估,代价评估是基于 CPU 代价和 IO 代价两个维度的

扫描方式代价评估公式
顺序扫描N_page * a_page_IO_time + N_tuple * a_tuple_CPU_time
索引扫描C_index + N_page_index * a_page_IO_time

上述参数说明如下:

关于索引成本计算可以参考这篇文章:MySQL查询为什么选择使用这个索引?——基于MySQL 8.0.22索引成本计算

执行计划

执行计划是查询优化器的产物,最终会交给存储引擎进行执行。执行计划可以帮助我们得知 MySQL 会怎么执行这条 SQL 语句。

使用 explain 关键字查看 SQL 语句的执行计划,可以得到以下信息:

存储引擎

MySQL 服务端规定了数据如何存储、如何提取、如何更新的规范,这个规范由存储引擎来实现,不同的存储引擎的实现方式不同,所以不同的存储引擎会呈现其独特的功能和特点。其中最常用的存储引擎是 InnoDB 和 MyISAM

简单说说这两款存储引擎的特点

InnoDB:

MyISAM

存储引擎方面暂时先不展开,会在其他文章继续穿插他们的对比,以及会详细分析 InnoDB 更新数据的流程

以上就是关于“MySQL查询语句执行流程是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


网站名称:MySQL查询语句执行流程是什么
分享URL:http://www.tsicrk.com/article/gopdcp.html

其他资讯

让你的专属顾问为你服务

0.5973s