SQL查询语句的执行流程及各个组件的作用

slime2021-10-20 14:58

目前无论是从事开发岗位还是数据分析师岗位,都需要知晓和熟悉SQL技能。为了能够深入了解SQL语句,不仅需要了解其如何写,同时还需要了解清楚SQL执行流程。

SQL查询语句的执行流程及各个组件的作用

SQL查询语句的执行流程及各个组件的作用:

连接器

第一步,先连接到数据库上,连接器负责跟客户端建立连接、获取权限、维持和管理连接。

在数据库里面,长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接。短连接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个。

查询缓存

连接建立完成后,就可以执行select语句了。执行逻辑会来到第二步:查询缓存。

mysql拿到一个查询后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以key-value对的形式,被直接缓存在内存中。key是查询的语句,value是查询的结果。如果你的查询能够直接在这个缓存中找到key,那么这个value就会被直接返回给客户端。

如果语句不在查询缓存中,就会继续后面的执行阶段。执行完成后,执行结果会被存入查询缓存中。但是大多数情况下建议不要使用查询缓存,因为查询缓存往往弊大于利。

查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。因此很可能费劲地把结果存起来,还没使用呢,就被一个更新全清空了。对于更新压力大的数据库来说,查询缓存的命中率会非常低。

mysql 8.0版本直接将查询缓存的整块功能删掉了。

分析器

如果没有命中查询缓存,就要开始真正执行语句了。执行逻辑来到分析器,分析器进行词法分析、语法分析。

优化器

经过了分析器,mysql已经知道你要做什么了。接下来优化器就选择执行方案。

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。一条语句可能有几种执行方案,执行结果一样,但是执行效率不一样,优化器的作用就是决定选择哪一个方案。

执行器

分析器知道了要做什么,优化器知道了要怎么做,下面就到了执行器开始执行语句。

为了帮助大家更深入地了解和掌握SQL技术,小编向大家推荐这门公开课,盘点大厂面试考点,带你玩转SQL点击图片立即领取

盘点大厂面试考点,带你玩转SQL

课程介绍

数据分析师SQL技能工作要求

剖析大厂SQL题目考点

建立SQL技能树

手撕SQL面试题

以上就是小编为大家整理的“SQL查询语句的执行流程及各个组件的作用”一文,更多相关信息尽在数据分析教程频道。

相关推荐

Vue3.0从入门到精通

入门AI必备,人工智能必读书单

人人都能听懂的JVM

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享