Doris进阶——Rollup和前缀索引

本文介绍了Doris中的Rollup概念,包括其在Base表上的作用,如何提升查询效率,以及在Aggregate和Duplicate模型中的应用。同时阐述了前缀索引的特性,指出Doris的前缀索引依赖于列排序,可以通过Rollup调整列顺序以优化查询性能。
摘要由CSDN通过智能技术生成

Rollup

Doris中通过建表语句创建的表是Base表,也就是基础表,通过建表语句指定大的方式来存储基础数据。

在Base表上可以存储创建多个Rollup表,Rollup表依赖于Base表的数据,且是单独物理存储的,所以创建太多会占用资源空间。

Rollup作用:Rollup是在Base表的基础上获得更粗粒度的聚合数据。在不同数据模型中会有不同的作用。

  • Rollup的根本作用就是提升某些查询的查询效率,也称为物化索引。
  • Rollup属于Base表,Base表可以增删Rollup,Rollup完全和Base表同步更新,Base表数据发生变化,Rollup也会跟随Base表变化。
  • Rollup完全独立存储,因此要考虑存储问题。
  • Rollup中的聚合方式也和Base表完全一致,创建Rollup时无需指定聚合方式,也不能改变原有的聚合方式。
  • Rollup的命中条件:查询的所涉及的列必须在Rollup中,否则只能查询Base表。且Rollup会自己实现命中。

Aggregate和Unique中的Rollup:

由于Unique是Aggregate中的一种特殊的形式且底层也是使用Aggregate中的替换函数实现的,所以这里只看Aggregate模型。

示例:

​
CREATE TABLE IF NOT EXISTS test.aggregate_test1
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `city` VAR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小眼睛的Ayuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值