大家好,欢迎大家收看本节课程
对于初学者入门的学习,一些理论不容易理解或记住,所以本节课程【创新】采用了【正、反对比联想记忆】的方法,
引入模拟场景中的肖荏盖的小故事。(模拟场景为虚构演绎,仅供教学,不要对号入座,懂不懂?明白吗?)
【数据库的功能都是正向的,模拟场景中的肖荏盖做的事情都是反向的。】
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