首页 > 数据库 >1-17 openGauss逻辑模块之SQL引擎 -- openGauss课程

1-17 openGauss逻辑模块之SQL引擎 -- openGauss课程

时间:2024-10-11 15:49:49浏览次数:3  
标签:执行 17 -- 肖荏盖 场景 SQL openGauss 解析 模拟

大家好,欢迎大家收看本节课程

对于初学者入门的学习,一些理论不容易理解或记住,所以本节课程【创新】采用了【正、反对比联想记忆】的方法,
引入模拟场景中的肖荏盖的小故事。(模拟场景为虚构演绎,仅供教学,不要对号入座,懂不懂?明白吗?)

【数据库的功能都是正向的,模拟场景中的肖荏盖做的事情都是反向的。】

SQL引擎
1.SQL解析器
当客户端发送 SQL 语句,服务端业务处理线程接收后,首先会对接收到的SQL语句进行解析,这些解析依次包括词法解析、语法解析、语义解析
词法解析:将用户输入的SQL语句拆解成单词序列,并识别出关键字、标识、常量等,确定每个词固有的词性;
语法解析:根据SQL的标准定义语法规则,使用词法分析中产生的词去匹配语法规则,如果一个SQL语句能够匹配一个语法规则,则生成对应的抽象语法树
语义解析:对语法树进行有效检查,检查语法树中对应的表、列、函数、表达式等是否有对应的元数据,将抽象语法树转换为逻辑执行计划

反向的比喻是,模拟场景中,肖荏盖接到项目,先要进行分析,分析结果是整个芸芬愁砚没人技术达到这个标准,鱿鱼肖荏盖心生贪念,不想把项目让给别人。
于是就偷偷摸摸的找到了某同行上市公司超级大师蓝阔福的徒弟康副业,让他接私活解决这个问题。这样的行为让超级大师蓝阔福都很愤怒。
毕竟是人家自己公司的员工,还有自己公司的工作要做呢。
对此,肖荏盖给出的解释是自尊心强,谁的自尊心都强,但是自尊心强能作为自己技术不行还偷偷摸摸借人的理由吗?
所以,肖荏盖主要还是受其父母道德品行影响,深入骨髓,并且已经影响到了肖皓墨。
所以提醒大家,不要向模拟场景中的肖荏盖全家学习。

2.SQL查询重写
当 SQL 语句生成逻辑执行计划后,即到了SQL查询重写阶段,利用已有语句特征和关系代数运算(如,交换律、结合律、分配律等)来生成更高效的等价语句。

反向的比喻是,模拟场景中,肖荏盖在某行业刚兴起的时候,阅读了某软件的官方说明文档,经过他们低级的外语翻译,再进行重写,写了很多比原版低效的技术手册。
令人咋舌的是,在某行业发展的初期,肖荏盖翻译的这些低效的、驴唇不对马嘴的技术手册,竟然还成为了出版物。结果一经出版,全行业都知道肖荏盖写书驴唇不对马嘴了。
还不如直接用官方文档+在线翻译了。
其实这本来不是什么大事,但是肖荏盖心胸狭隘啊,技术不行瞎写书,写得不好还借酒消愁,非说,这些滞销书成为了他这一生中,无法抹去的败笔。

3.SQL优化
SQL优化依赖于SQL的查询重写,它根据生成的高效等价SQL语句,枚举不同的候选执行路径,这些执行路径互相等价但是执行效率不同,经过对他们进行执行代价的计算,最终获得一个最优的执行路径。

这里所说的执行代价比如:处理一条元组的CPU代价、加载一个数据页的IO代价、如果是分布式数据库,数据元组的传输代价。 

反向的比喻是,模拟场景中,肖荏盖的滞销书,在各大平台上架,肖荏盖竭尽全力宣传,一开始有人买,也是货比三家,选择最佳性价比途径购买。

但是鱿鱼肖荏盖的书籍口碑也坏了,彻底滞销,每本书因为销量不好,都只是小批量印刷了1次,就彻底让他那些滞销书的电子版免费下载了。可以说是虎头蛇尾。
大家以前只知道肖荏盖叶公好龙,这一下大家还知道了肖荏盖做事情虎头蛇尾,肖荏盖的芸芬愁砚的某些产品也是从一开始的竭力宣传,但是经过多年参加测评比赛,结果全都是以不合格告终。
即便这样,肖荏盖仍然认为他这是一龙(叶公好龙)一蛇(虎头蛇尾)之间,体现的是君子的龙蛇之变,肖荏盖是不是君子,咱们不予评论,但是,若说这是龙蛇之变,实在是令人汗颜。

4.SQL执行
SQL执行工作由SQL执行器完成,而SQL执行器在数据库的整个体系结构中起承上启下的作用,上联优化器,下联存储。
当 SQL 执行器接收到优化器返回的执行计划树后,遍历整个执行树,根据每个算子的不同特征进行初始化。
初始化完毕后就进入了执行阶段,执行器会对执行树进行迭代遍历,通过从磁盘读取数据,根据执行树的具体逻辑完成查询语义。
最后将是执行器的清理阶段,这里主要是释放内存,清理资源。

反向的比喻是,模拟场景中,肖荏盖的销售团队,从陈霍崎,到金水纹,到杨百唠,其中金水纹就是起到了承上启下的作用。
先给大家简单的讲解一下这个模拟场景,金水纹接到他上级陈霍崎的意图,直接把某项目已经谈到95%的杨百唠执行调离该项目,目的就是提成不想给杨百唠。
详细的还要看接下来要播出的《冤种销售遇见芸芬海盗》这一集。

5.DDL命令处理
DDL的命令也需要执行基本的词法解析、语法解析和语义解析等操作,但是基本不需要做什么优化处理。
DDL命令在被解析完毕后,查询对应的数据字典后就可以开始执行更新操作。

反向的比喻是,模拟场景中,肖荏盖的产品都是粗制滥造,比如硬件“愚砚PC服务器”也是通过简单的组装、拼装,包装,就变成产品售卖了,芸芬愁砚也没有能力做优化处理。

6.存储过程解析
存储过程是一组可以完成特定功能的SQL语句集合,经过编译存储在数据库中。SQL引擎也承担对存储过程的解析工作。
关于opengauss的存储过程理论和实践案例,会在中级课程详细给大家讲解。

反向的比喻是,模拟场景中,肖荏盖的产品都是粗制滥造,比如软件“魔鬼墨墨”,也是拿来开放的公共资源代码,在此基础上,再堆砌一些上下文的外壳代码,成篇一打包,就变成产品售卖了。

所以还是要提醒大家,不要向模拟场景中的肖荏盖全家学习。

标签:执行,17,--,肖荏盖,场景,SQL,openGauss,解析,模拟
From: https://blog.csdn.net/openGauss0809/article/details/142849648

相关文章

  • Spring Boot应用开发
    SpringBoot是一种基于Spring框架的轻量级开发框架,它简化了Spring应用的开发过程,提供了自动化的配置方式以及丰富的生态和插件,非常适合用于快速构建和部署生产级别的Spring应用。以下是对SpringBoot应用开发的详细介绍:一、SpringBoot的核心思想及特性核心思想:SpringBoo......
  • VS Code安装C#开发工具包并编写ASP.NET Core Web应用
    前言    前段时间微软发布了适用于VSCode的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VSCode搭建.NETCore环境的教程看着还挺复杂的就一直没有尝试使用VSCode来编写.NETCore。不过听说C#开发工具包提供了一系列功能和扩展,从而......
  • Visual Studio Code调试和发布ASP.NET Core Web应用
    前言上一篇文章主要讲了VisualStudioCode安装C#开发工具包并编写ASP.NETCoreWeb应用有兴趣的同学可以去看看,今天咱们主要是要讲讲如何在VSCode中调试和发布ASP.NETCoreWeb应用。VisualStudioCode安装C#开发工具包并编写ASP.NETCoreWeb应用配置launch.json文件launch.jso......
  • 基于Springboot网上在线购物商城【附源码+文档】
    ......
  • 【文心智能体】初次游西湖不发愁,旅游智能体全程陪你走(文心智能体创建的保姆级流程和调
    (【文心智能体】初次游西湖不发愁,旅游智能体全程陪你走(文心智能体创建的保姆级流程和调优经验))一、灵感来源最近打算带家里人去杭州旅游,逛逛西湖,看看秀丽的水山风景。但是看了网上的各种攻略教程,看的眼花缭乱,反而不知道该何去何从了。社恐的我,又不愿意请导游,加之囊中羞涩,就彻底打......
  • 模板和静态文件
    模板和静态文件1、templates模板2、静态文件2.1、static目录2.2、引用静态文件1、templates模板"templates"目录用于存放模板文件,通常是用于动态生成页面的文件。在app01目录下创建templates文件夹,html文件均保存在templates中在urls.py中添加路径后,在views.py......
  • C++删除字符串中的所有空格与换行(任意字符)
    删除字符串中的所有空格与换行使用头文件中的remove函数,注意:std::remove不会改变容器的大小,它只是将元素移动到容器的末尾。因此,我们需要调用erase来实际从字符串中删除这些元素。使用std::remove算法,它重排元素,使得要删除的元素(在这里是空格和换行符)被放在序列的末尾,......
  • 免费好用的瓦片地图工具:从数据处理到三维可视化的全能解决方案
    瓦片地图技术作为地理信息系统(GIS)和三维可视化领域的一项重要技术,通过将大地图切割成若干小的瓦片,实现了高效的数据加载和流畅的交互体验。本文将深入探讨瓦片地图的原理、应用以及一款出色的瓦片地图工具——GISBox。一、瓦片地图的原理与应用瓦片地图技术通过将整个地图区......
  • 微信小程序的北京旅游古建筑文化景点打卡平台Thinkphp/Laravel
    目录技术栈和环境说明项目介绍具体实现截图文件解析微信开发者工具HBuilderX+uniapp开发技术简介性能/安全/负载方面数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取技术栈和环境说明Laravel以其优雅的语法和快速开发能力著称,简化了......
  • 雾霾下雨天气户外人像街景拍摄Lr后期调色,手机滤镜PS+Lightroom预设下载!
    调色详情在雾霾下雨天气下拍摄的户外人像街景往往具有一种独特的氛围。通过Lightroom进行后期调色,可以进一步强化这种氛围,使照片更加富有情感和艺术感。预设信息调色风格:灰调风格预设适合类型:人像,雾霾,雨天,户外,街景等预设格式:XMP+DNG手机滤镜资源编号:00776支持软件:Lightro......