首页 > 数据库 >关系数据库 Query_Execution

关系数据库 Query_Execution

时间:2024-11-12 08:48:07浏览次数:1  
标签:Processing logical 关系数据库 plan Query Model Execution

关系数据库 Query Execution 的流程

在关系型数据库中, 一条 Query 语句执行的流程如下:
DBMS将Quey语句翻译成特定的内部抽象语言, 通常有两种 Query Plan

  1. logical Plan: 使用关系代数描述 Query Plan, 描述关系操作符或者非关系操作符
  2. physical: 描述这些操作符的实际动作

Query 处理的三个阶段

  1. 解析以及重写 Query, SQL->logical plan
  2. Query 语言优化
    logical plan -> 优化的 logical plan -> physical plan
  3. Query Execution: 在数据库中执行这个 physical plan

Processing Model

Processing Model 在解析节点不起直接作用, 起作用的主要阶段是优化节点(Optimization), 优化器会根据数据库的统计信息(如表大小, 索引情况)和 SQL 查询条件, 生成一个最优的执行计划, 这里可能包括选择最合适的索引, 决定连接方式等, 以尽量减少资源消耗和提升查询速度.
Processing Model 在这个阶段开始生效, 帮助定义 SQL 优化器在构建执行计划时如何考虑数据的存储和读取方式.

根据调用数据库操作符顺序的不同, 我们通常将 Processing Model 分为两类, 分别是自上而下, 与自下而上的方式, 类似于语言编译的流程.
常见的三种Execution模型是:

  1. Iterator Model
  2. Materialization Model
  3. Vectorized / Batch Model

Iterator Model

Iterator Model:
简单点说, 每次处理一行, 尽可能地将这一行的所有操作处理完, 同时, 假设A行还没有处理完, 可以开始处理B行, 同时处理多行数据的方式称为 Pipeline

标签:Processing,logical,关系数据库,plan,Query,Model,Execution
From: https://www.cnblogs.com/wevolf/p/18541026

相关文章

  • 基于 XQuery 的简单文字识别程序
    本篇文章介绍了如何使用XQuery进行简单的文字识别处理。尽管XQuery本身不具备图像处理能力,但它可以有效地处理XML格式的数据。假设输入的数据是一个XML格式的图像像素信息,我们可以利用XQuery提取出其中的文本数据。示例XML数据我们假设输入的图像已经被预处理为XML......
  • 如何限制用户修改 long_query_time
    如何限制用户修改long_query_time需求来源数据库的long_query_time设置了写入慢查询日志的SQL语句执行时长的阈值,当应用系统修改为很小的值或0时,会在数据库的慢查询日志中记录大量SQL语句,导致数据库性能降低和占用磁盘空间的快速增长。GreatSQL对于影响整个数据库会......
  • ethereum.FilterQuery 日志查询处理自定义事件
    前言:在开发中也是遇到这个问题了,并非常见的Transfer,Approve等在ERC20中定义的事件,只要你的事件在sol文件中存在,那还好处理,但是如果不存在,刚开始接触的时候,你可能就有点懵,我也是找了两天,查阅了很多资料,并没什么niao用,偶然看见了区块浏览器中的log才恍然大悟。问题:Uniswa......
  • 个人练习前端技术使用Bootstrap、JQuery、thymeleaf
    说明:本代码只是为了本人练习前后端联动技术,包含html,jquery,thymeleaf模板、ajax请求及后端功能联动,方便自己查找及使用。@目录代码场景场景1.table批量查询功能(有默认值),点击"查询最新数据"从后台查询覆盖默认显示的数据场景2.新增,点击“新建”显示form表单,提交成功后隐藏form表......
  • QueryExecutionListener 实现 SPARK SQL 数据血缘
    背景数据血缘是数据资产管理非常重要的一部份,团队现在已经实现通过Hook上报HiveSQL任务数据血缘,通过impalalineage日志获取impala任务数据血缘。随着SparkSQL计算引擎的使用,现针对该场景设计可行的血缘获取方案。方案思路分析在spark的源码中,以Scala的形式提供了......
  • 开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
    @目录问题描述我的使用场景描述结论本人其他相关文章链接问题描述开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql?我的使用场景描述我采用执行sql修改配置文件,也就是采用“临时生效操作步骤”开启慢SQL,比如我设置的是超时100毫秒就记录sql,但是发现......
  • 【JQuery】基础从零入门操作,简单详细
    阿华代码,不是逆风,就是我疯你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!!目录一:JQuery介绍1:引入依赖2:src3:下载说明4:版本说明二:JQuery使用三:JQuery语法1:起手式2:选中元素四:JQuery选择器五:JQuery事件1:事件的组成六:获取、设置元素内容1:获取元素内......
  • 零基础3分钟快速入门MYSQL关系数据库1
    MySQL的语法规范1.不区分大小写,但建议关键字大写,表名、列名小写2.每条命令最好用分号结尾3.每条命令根据需要,可以进行缩进或换行4.注释ctrl+/单行注释:#注释文字  单行注释:--注释文字  多行注释:/*注释文字*/1.安装mysql、安装navicat2.navicat连接mysql(1)打......
  • 零基础3分钟快速入门MYSQL关系数据库2【1-6见上篇】
    1-6点此链接→  零基础3分钟快速入门MYSQL【1-6】7、数据操作1、插入数据:insertinto表名(字段名1,字段名2....) values(字段对应的值1,字段对应的值2,.......),(字段对应的值1,字段对应的值2,.......);2、修改数据:update表名set 字段名1=新的数据值,字段......
  • webpack5配置传统jQuery多页面应用
    简介大家好,我是chenms,最近我们公司有要求需要开发几个以前传统的前后端不分离的jQuery老项目,现在大部分都是用vue或者react开发习惯了组件化的方式,所以我这边打算用webpack5配置一个可以打包传统jQuery多页面应用想法通过配置postcss给css自动加上前缀通过配置babel把e......