温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
接下来我们聊聊roll up的几点注意事项啊。roll up上卷你是更粗力度的聚合,为了命中前缀索引,调整顺序也好,他的目的就是什么,提高查询效率。对吧,所以在源码里面,或者说有些资料你会看到,把它称之为什么物化索引。对吧,因为它不仅是粗力度聚合,也可能是什么,为了命中这个索引。所以叫它物化索引,你要知道这说的是一回事啊。另外roll up是附属于基表。我们可以基于基表创建或删除roll up,但是这个roll up表我们自己去查,他是查不到,这是他底层自己去,呃选择维护和选择的,他觉得能命中,能用他自己走roll up表我们通过执行计划能看到啊。还还有强调它是独立存储对吧。你不要闲着没事说一张机表,我创建一个几十个rollup表啊,说我未来满足我各种查询加速,那你要考虑考虑你有没有那个金刚钻对吧。
01:08
它是独立存储的,那说明相当来说还要再存一份啊对应的数据,那你这个磁盘空间够不够对吧,而且呢,对导入速度也有影响。对吧,你想想我基表导入数据,我这个表是不是对应的也要去做聚合呀,或者。明细模型的那种是不是也要做,因为表你可以理解为实实在在的表,它有自己的数据啊,是不是跟视图有点像啊,物化视图有点像,但他还不是啊,啊后面我们会讲物化视图。但查询呢,那肯定是没影响查询,另外它的数据更新与同步,就是什么基表数据变了,我的ROLL2表也跟着变啊,也跟着变,这个不用我们管。
02:00
还有呢,呃,Roll up中列的聚合方式与基于表要完全相同,在创建时不用指定,但是也不能修改,这说的是啥意思?就这个我们roll up都用好了,我们说用的时候你grew by。要按照key列去group back,那value列你是上,你就必须加一个上,对吧,聚合方式不能变啊,不然走不了roll up,而且你你你变了的话也没有什么意义,不知道你要查什么东西,对吧。另外,是否能够命中roll up的必要条件。就是查询所涉及的所有列,包括我们select字段,还有where当中的列的都必须在roll up的列里面出现。也就是说你这个查询语句啊,查询语句出现的所有列所有字段必须在roll up。里面都有啊。
03:00
都指定了这些字段才可以。那同样的count星无论如何都无法命中roll阿尔法对吧?这个前面我们讲局限性讲过了,可以通过去看,呃,可以通过DC。去看他所有的roll up。这个我们刚才都看过了,好相当于说又是给大家啰嗦几句啊,啰嗦几句。
我来说两句