00:00
好,我们来聊一聊这个。它并不是可选的吧。啊,这个要不不是可选啊,改一下orderbi应该是什么必选对吧,必选为什么呢?它排是不是做排序啊,这个大家都知道对吧,而且它是什么分区内排序,你看咱们的数据,咱们前面也讲过了呗,呃,咱们是不是order buy的啥呀,咱们看一下这个建表语句上面也有对吧?咱们说order buy什么idskidd,那你看。不同的分区。哎,这个还。这赶巧了对吧,呃,我看看。分区内我看啊那。你看ID排序,然后当然SKUID排序你看,呃,同一个分区内部这个是升序的吧,然后这里是不是也是升序的对吧?如果我们的ID相同,它是不是按照这个第二个字段大小排序啊对吧,默认程序,那么分区间是无序的,那如果你看第一个字段一样,第二个字段你看。
01:16
它是不是四,它是二呀,啊,所以我们说它是一个分区内排序,这也没啥啊,这也没啥,那关键在于哪呢。它是必填的,少不了,为什么呢?甚至比组件还重要。为什么呢?因为其实大家想想咱们的主见是什么,刚刚讲的是不是一个稀疏索引呢?那你要用稀疏索引的话,前提是什么?数据是不是得有序啊,你要无序的话,你还怎么找?举个例子,呃,这样我的数据是13567。二。四好,我的数据长这样,是不是乱去的,然后我做跳数索引对吧,稀疏的一个索引来我第一行记录的一个一啊行号,比如说我说它是第一行,然后我记录了一个六。
02:09
我说他是1234第四行。我记录了一个四。它是第1234567第七行,那请问现在我过滤条件VR什么什么等于三,好这个ID等于三,它怎么找啊,你告诉我怎么找。那之前我们是是不是说他能确定一个范围啊,对吧,那你现在数据乱序,我的范围还有还能确定吗?那到底是一到四之间呢,是这整个一坨啊,还是一到六之间呢?还是这一坨呀,还是后面这一坨呀。你数据是乱的,我根本没法确定啊,那从而你这个索引就用不了了,所以大家能理解为什么orderbi是必须的吧,反正你必须有序。但是你索引,呃,组件设不设,那是你的事儿啊,那你的事儿另外一点就是什么呢?你想想咱们处理有序的数据跟处理无序的数据,哪个效率会高一点,那肯定是有序的效率高。
03:11
对吧。战斗民族就是这么简单,直接你排序必须给往加啊。另外一点是什么?咱们后面会介绍这个replacing medurate,这是会进行一个定期的去虫操作的,那么它去虫的依据是什么?Order by啊,它是根据order by的字段去做一个去重的。所以呢。这个就显得比较重要了啊。另外一点要求组件必须是order by字段的前缀字段,啥意思呢?比如说我order by2个字段,IDSQID是不是两个,那我的组件要么?就是ID,要么就是ID跟SKUID能理解吗?必须是从前往后不能跳。
04:00
你可以只要一个,那必须是第一个,你要两个,那就必须是前两个。能理解吧,那我能不能单独order by2个字段,然后我的组件是SKUID呢?不行,你跳过了谁啊?跳过了前面的ID不行,其实这个也很好理解,咱们排序是不是按一级一级排进去了,先比较ID,再比较SKUID,对吧?如果你直接按照SKUID有意义吗?你只看SKID是不是无序的,你看这你只看SKUID。那是什么?124又变成二了。同样的道理,你只看这个字段它是不是无序的呀,那我的索引还怎么加呀,索引是不是还用不好用了就对不对,能理解吧,啊其实咱们再举个更简单的例子啊,以这个叫层级维度,层级维度我们来一个好好理解的例子,比如说年月日。
05:02
是三个字段。你按照三个维度去做,呃,聚合,那你想想呃,我是不是可以按年聚合没毛病吧?那我按年月聚合也没毛病吧,那我按年月日聚合也没毛病,是不是统计啊,那如果我只按日聚合呢?这不行。按天聚和按日啊,你想想呃,比如说1月1号,你2020年是不是有1月1号,2021年也有1月1号就等等等等,那你按照这个天,按照日来聚合没有意义对不对。所以它肯定是没意义,所以大家也就理解为什么组建字段必须是欧德拜字段的前缀啊,这一点大家相信不难理解啊,不难理解。一个其实最主要影响就是它这个索引的设计的啊,这个所以他就规定必须是这样啊,必须是这样,这个大家稍微记一记啊。
我来说两句