sql执行流程详解

今天复习了一下sql的执行流程,在这里简单做个笔记,方便后期回忆

下图为手动绘制的sql执行图,分解了sql执行的步骤

在这里插入图片描述

具体解释:

1.用户发送请求,tomcat进行处理,最终会调用msql驱动的数据库连接池,获取数据库连接,然后发送需要执行的sql。
2.Mysql接收到执行sql请求,调用数据库连接池里的一个线程去监听和读取请求数据,并从网络连接中读取和解析需要执行的sql数据。
3.处理线程解析出需要执行的sql数据之后,会调用sql接口,去执行sql语句。
4.sql接口会调用sql解析器,基于sql语法的结构,去拆解并解析sql语句,解析成可以让Mysql可以读懂的sql语句。
5.sql解析器解析出sql语句要做什么事情之后,就会调用优化器,找出sql执行效率最高的执行计划。
6.优化器找出最优的执行计划之后,就会调用执行器。由执行器去按一定顺序和步骤,去执行执行计划,也就是由执行器,去调用存储引擎里的各种接口,来获取内存或磁盘中的数据。
7.sql执行器执行完成之后,就获取到了sql语句想要获取的数据,然后返给用户。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive SQL执行流程可以分为三个主要步骤。首先,Hive 会将用户编写的 SQL 语句进行词法分析和语法分析,生成一个抽象语法树(AST)表示用户查询的结构。这个过程叫做查询解析。在这个过程中,Hive 将 SQL 语句转化为一个 QueryBlock 对象,用来表示查询的结构和语义。 接下来,Hive 会对 QueryBlock 进行语义分析,检查查询中的表、列、函数等是否存在以及其它语义上的错误。在这个步骤中,Hive 还会进行表的访问控制和权限检查。一旦通过了语义分析,Hive 就会生成一个逻辑查询计划(Logical Plan)。逻辑查询计划描述了查询的逻辑操作,例如选择、投影和连接等。 最后,Hive 会将逻辑查询计划转化为物理查询计划(Physical Plan),并生成对应的 MapReduce 程序。这个过程叫做查询优化和执行计划生成。在这个步骤中,Hive 会进行各种优化,例如谓词下推、列裁剪和任务并行化等,以提高查询的性能。最终,Hive 会将生成的 MapReduce 程序提交给底层的计算引擎进行执行,计算结果将返回给用户。 综上所述,Hive SQL执行流程包括查询解析、语义分析和查询优化及执行计划生成三个主要步骤。通过这些步骤,Hive 能够将用户编写的 SQL 转化为 MapReduce 等计算引擎可识别的程序,并实现查询的执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Hive SQL的底层编译过程详解](https://blog.csdn.net/helloHbulie/article/details/117283369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值