00:00
那我们再来聊一聊一个circle的hint增强,这个主要就是join。强行指定一个join类型,那么在2.4的时候它就有了,当时呢,只能指定一个广播join,现在又加了那么其他几种对吧?Salt,慢join。呃,沙uffle哈,Join,还有一个沙uffle k的那个join。那么如果你对这几个究点不了解的话,那么这边给了一个网上的帖子,可以去看一看,或者自己找找资料啊,那我们挨个来看一下啊,其实很简单,就是在写的circle语句里面加了一个这种hint,也就是暗示、提示的意思啊。那这一块可能我拷贝有问题,我们直接看代码啊,Hi里面呢,有咱们写了一个hint DEMO,那么对这四种呢,咱们分别写了啊。
01:05
就是两张表进行,然后用ID关联没了啊。呃,这个是ID。ID。ID好,其他都是对的啊,一会我把搜狗更新一下,那个咱们前面不是讲过广播交引,如果默认阈值十兆,那小表大于十兆,那咱们可以强行指定其中一种,它方式呢,就是指定这个暗示circle口的暗示hint,就是在select后面加上这么一个东西啊,斜杠星加。然后叉叉叉什么样的蚯蚓,然后里面把这张表写进来。然后在新。杠,这就是他的一个hint暗示提示的一个用法,那广播节文咱们都玩过了。呃,他们可以看执行计划对吧,它三种写法都可以都能实现,那么它在执行计划里面就体现为一个广播交易,这个咱们就不再去看了啊,我们把它做掉。
02:09
那接下来是salt Mar,这个咱们简单瞅一眼就行,挑一个来看,三个写法都支持,三个写法都支持,那咱们打开local星,然后写一个死循环来执行。跑起来之后,咱们看一个本地的4040页面就行了啊。我们看一下吧。嗯,刷新一下。直接看这个circle,看瘦的执行计划。我们往下翻,可以看到当前执行的是一个sort me蚯蚓对吧,那这个就没啥了啊。那其他也一样。
03:01
那我们看一下沙否哈奇join,那它的写法就很简单,沙否哈奇join写在这儿,我们同样执行一下,看一下那个执行计划它的类型有没有转过来。应该差不多了。好,有了circle点一下往下拉,大家可以看到当前执行的是一个shuffle har join,对吧,因为我们强行指定的一个类型。那这个行看完。再看这个带副本的。执行。但这个的执行条件相对来讲就比较苛刻了啊。要不然它很容易又变成那个salt me join,因为它的优先级是最低的,咱们join策略默认是有一个优先级的,广播join大于salt,面级join大于这个,再大于这个。
04:04
好,我们瞅一眼。看一下circle so。啊,像这边就出问题了啊,也不是出问题,就是它变成了一个笛卡尔基join的啊,说明它的优先级是大于咱们那个刚才那种JO的,它优先级是最后一般用的还比较少。那这个咱们体会一下就行,或者说它呢,你从源码解释,它其实就是咱们刚才那种交运啊,就体现出来就是一个低卡耳机啊,那么这个是几种蚯蚓的暗示啊,那回头如果需要的话,你按照这个语法去写就行了,那咱们也不用过多去关注了,这个东西本地跑一下,看一下执行计划就OK了啊,就知道一下这回事儿。
我来说两句