00:00
对吧,那怎么办呢?啊,类似于这样的一个情况,好,首先第一个空值过滤啊,那我们有同学可能在想刚才的问题,我们大家看了两张表,在装你的时候,它是不是自动给我们过滤空值啊,对吧?啊好,那是在基于建立在join的基础上,如果你想一下我们用的是that draw呢。我用的是level呢,那左边这个值你能过滤掉吗?Level是不是左边所有的数据全部都要啊,哪怕你是,那我是不是都要保留,所以在这个注意啊,空K过滤只是在适合适合什么时候用啊。非阴的状语的时候用,因为阴的状语你不需要手动去过滤这个控制了。能理解这个事儿对吧,所以接下来我们测试的一个内容啊,都是拿着谁啊left去过滤的,其实这个问题你都不用去测,你都能想明白啊,我们给大家说一下啊,第一个我们创建一个空值的表啊,就这个词在里边呢,我们手动的把很多的数据呢指为空了啊,但是数据数据大小还是比较大的,然后接下来我们再导一个数据。
01:22
这边还有那ID的,而且还比较多,然后呢,100万条。对吧,然后把这个数据呢,我们也给他。拖进了,拖进来了以后呢,我们再把这个数据给他干什么,倒一下。啊,导到我们的空里边。啊,导到我们这张表里边,当然其实这个优化刚才我们说了,呃,如果说这个优化其实大家也关注一下,其实工作当中不太常用,那我们国家解释啊,第一个不过滤空K,不过滤空K。
02:01
这个就是说实际场景当中,如果说你想用never join。就是说这个优化啊。这个的优化方案,他想做什么事呢?如果说。你做的是level,同时你不希望左边long值出现。才能用的优化。啊,因为如果说第一。你不是用,你用的是join,需要优化吗?不需要它自己就过滤了,对吧?如果用的是level join,我们需要knock。那你能过滤掉吗?不能对吧,那看一下两个so的区别啊,这个呢是直接去来回语,第二个呢,看我们join语的条件呢。
03:00
我们把空值给他干什么,去掉?那大家其实也能想明白,这个我们都不用测,如果说真正这种情况哪种效率高呀,假如说啊,这个里边有很多空值啊。哪个效率高,肯定是过滤掉,因为过滤掉以后是不是数据集都变小了。对,他俩结果是不一样的,就像我们刚才说的嘛,就是说你要干什么事啊。就是说第一你是level join或者说join这种情况,而且你还要就不不需要那个什么,那值的时候,这种情况下,我们先JOIN1起来之后,我再嵌套一个V小磁查询。再把闹钟过滤掉行不行?就是能不能跟这个结果一样。就是我们先用这种方式去做照影。然后对这个结果,对刚才照应的,照应之后的结果,我在嵌套一层紫砂询,把里边浪纸给它干掉,你说是先干掉好还是后干掉好,肯定先干掉了,因为如果你后干掉,是不是在装的时候他干什么,他参与了整个装了,数据集变大了,因为最终我们是不需要的,所以刚才我们所聊的啊,这种情况,其实一看就知道它第的效率高,对吧,因为过滤掉了,其实这个条件就是说什么时候能用啊,我们总结一下。
04:28
空气过滤什么时候能用啊?就是他这个条件比较苛刻,对吧,对吧,它使用的场景我们给大家写一下啊,使用场景大家可以把这个加到那个文档当中,呃,第一个是非。In状语,因为如果in状语你写那个跟不写那个没区别,他自己就跟你过滤掉了,那我还写它干嘛呢,对吧,没必要啊,它自己会过滤掉好第二个呢。
05:04
不需要字段为闹啊,只有在这种场景下才需要,如果你不需要场景频道的是不是有两种方案对吧?第一套方案怎么怎么说,先过滤再找你。啊,还有另外一种呢,先join再干什么?过滤是不是两种结果肯定是一样的对吧,但是明显感觉到哪一种效率更高啊,先过滤,因为我把一张表的数据集就干啥降下来了,然后跟这个去找,你本来可能两张大表,你是这样去招引,然后呢,交易出来一个数据集,然后再给它过滤掉一点。对吧,那肯定是第一种效率高一点啊,所以说它这个场景呢,比较苛刻一点啊,比较苛刻一点是这个意思对吧,这是我们说的空K给它过滤掉。
我来说两句