暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss数据库执行器概述

openGauss小助手 2021-10-19
196

从客户端发起一条SQL到结果返回给客户端整体的执行流程如图8-1所示,其中可以看到执行器所处的位置。

图8-1 客户端SQL执行流程示意图

如果把数据库看成一个组织,优化器位于组织最上面,是这个组织的首脑,是发号施令的指令下达机构,执行器位于组织的中间,听从优化器的指令,严格执行优化器给与的计划,将从存储空间中读取的数据进行加工处理最终返回给客户端。

第二章数据库设计中提到了SQL、关系代数之间的联系和转换,同时提到了关系操作符。关系的本质上是元组(表中的每行,即数据库中每条记录)的集合,关系代数实际上是定义为集合上的一系列操作。

执行器接收到的指令就是优化器应对SQL查询而翻译出来的关系代数运算符所组成的执行树。一颗形象化的执行树如图8-2所示:

图8-2 执行树示意图

其中每一个方块代表一个具体关系运算代数符,我们称之为算子,同时注意到这里有两个箭头代表的流。其中蓝色的流代表数据流,可以看到数据从叶节点流到根节点;红色的流代表控制流,从根节点向下驱动。这里的驱动是指上层节点调用下层节点函数的数据传送函数,从下层节点要数据。

执行器的整体目标就是在每一个由优化器构建出来的执行树上,通过控制流驱动数据流在执行树上高效的流动,其流动的速度决定了执行器的处理效率。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论