七万号·数据平台实战手记

Back

① 标题党#

主标题Rollup 是什么鬼?Doris 的"预计算"魔法一次讲透 备选你的 Doris 查询慢?八成是没让 Rollup 把活干了

② 开场钩子#

同样一条聚合查询,有人跑 3 秒,有人 3 毫秒。差的不是机器,是你没让 Doris 把结果提前算好

③ 主角特性:Rollup 表(物化视图)#

Rollup 本质是预聚合的物化视图:你在明细表上定义一个 Rollup,Doris 在你导入数据时,顺带把这张预聚合表算好。查询如果命中 Rollup,直接读结果,不扫明细。

  • 多个 Rollup 对应不同聚合维度(城市级/每日级/用户级)
  • 查询优化器自动选择命中的 Rollup(最贴合的那个)
  • 与物化索引(Materialized Index)的取舍点

④ 最小可复现#

ALTER TABLE orders ADD ROLLUP r_cnt (city, count(*));
ALTER TABLE orders ADD ROLLUP r_amt (city, sum(amount));

-- 优化器命中 r_amt
SELECT city, sum(amount) FROM orders GROUP BY city;
sql

⑤ 结论#

Rollup = 用”写入时多一点成本”换”查询时快几个量级”。Doris 的聪明,是帮你把重活提前干完。

⑥ 配图脚本#

预聚合时间轴 / 明细→Rollup 派生 / 查询命中示意 / 多 Rollup 选择


Rollup 与物化索引:Doris 的'预计算魔法'
https://realcpf.tech/blog/doris-03
Author 刘佳成
Published at 2026年9月1日