Rollup在查询中的作用:
但是为了命中Rollup需要满足一定的条件,并且可以通过执行计算中的ScanNode节点的PreAggregation的值来判断是否可以命中Rollup,以及Rollup字段判断命中的是哪一张Rollup表.
Base:基表.
Rollup:一般指基于Base表创建的Rollup表,但在一些场景包括Base以及Rollup表.
Doris会把Base/Rollup表中的前36个字节(有varchar类型的可能导致前缀索引不满36个字节,varchar会阶段前缀索引,并且最多使用varchar的20个字节)在底层底村引擎单独生成一份排序的稀疏索引数据(数据也是有排序的,用索引定位,然后在数据中做二分查找),然后在查询的时候会根据查询中的条件来匹配每个Base/Rollup的前缀索引,并选择出匹配前缀索引最长的一个Base/Rollup
要命中聚合物化视图需要下面一些前提:
如果符合上述条件,则针对聚合模型在判断命中Rollup的时候会有两个阶段: