温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,刚才呢,带着大家总结了一下前面所讲的内容,也就是说从我们打开一个客户端到我们输入circleq,然后系统呢,去便利读取我们一行一行的SQL语句,然后以分号隔开去解析我们的SQL语句,对吧?但是现在呢,我们真正才进到解析SQL语句的这个代码当中,现在呢,我们进到了wrong动的这个方法当中啊呃,那在这个里边呢,核心的大家都知道有两个方法了,一个是compile internal,还有一个是最后的我们的这两方法一定要知道一下,接下来呢,我们就进到这个compel的这个当中啊,它里边做了三大件事情,第一。解析器。对吧?解析器将我们的骇客语句做词法语法解析,并转化为抽象语法数,也就是我们所提到的叫ast这个数,对吧?抽象语法数啊,好,第二件大事,第一件大事ast啊,第二件大事呢。
01:12
啊,将使用我们的编译器将我们的ast编译成。Operator tree。啊,操作数可以执行的啊,第三件事情,那operator tree呢,Query block对吧,那这个东西呢,我们只能把它称为叫逻辑执行计划,所以第三个那就是优化器所做的优化啊,两块一个是逻辑执行优化,第二个呢是物理的优化啊呃,那这个就是解析器。编译器执行器,这么三个人做的三件事情对吧?三大件事情,那我们知道其实还有第四个叫执行器,那么他在这个cute里边啊,所以说呢,四个气都给大家说明了在什么位置,但是呢,它并不是说对应的有四个平级的方法,而这个方法当中包括了三部分啊,一定要注意一下,好,那我们就进来点进去,我们先看第一部分对吧?啊点点好以后呢,这个里边其实就一个最核心的就有一个comp方法,呃,那在这个comp方法我们点进去,在这个comp方法当中呢,它就比较关键了,因为在这个里边我们将会看到来注意啊,往后走,它这个方法呢,也是比较长的,这样我们看到应该是200多行对吧?前面我们也介绍了这个里边有这么几件事情,第一在这儿进行抽象语法数的获取啊,就我们刚看的啊,这里边呢,是解析器在进行一个工作。
02:45
呃,那么接下来呢,这块这个里边。就是编译器跟我们的优化器在进行工作了,那么这个里边呢,又包含两个啊,又包括两个东西对吧?哎,把我们的这个数拿过来,再根据全上下文呢去做一个解析啊,所以呢,这是我们整体的一个介绍,大家一定要注意一下啊,也就是前面三个气,这里边呢,又分为,那我们再回头看一下啊,这个当中我们也给大家说一下,首先这个里边呢,包括三个七,最后的excute包括一个器对吧?啊,那点到comp in的方法里边,这里边有一个compile方法,这里边有解析器,编译器和我们的。
03:30
优化器三个内容对吧?呃,那在这个过程当中,首先我们进来这个地方呢,是解析器的工作,然后下面两个是编译器和优化器的工作,大家一定要搞清楚,OK吧,这块呢倒并不难,对吧?我把这个先截一下,然后接下来我们具体的进到这个里边,看一下ast数是如何生。
我来说两句