更新时间:2026-05-18 GMT+08:00
增量刷新
刷新原理
增量刷新仅处理自上次刷新以来的增量数据,因此从计算量上比全量刷新要小很多,消耗资源也比较少。

增量刷新语法:
1 2 3 4 5 | CREATE MATERIALIZED VIEW test_mv2 REFRESH FAST EVERY (interval '00:10:00') --每10分钟刷新一次 ENABLE QUERY REWRITE --开启查询重写 WITH(orientation=COLUMN, enable_hstore_opt=ON) --使用列存hstore_opt存储格式 AS Your_Select; |
约束限制
- 增量刷新前置条件:基表必须开启Binlog;需要增量计算支持。
- 不满足增量时自动转全量:
- Binlog消费记录被清理
- 基表发生DDL
- 扩容重分布期间
- 其他需要全量数据的场景
- 支持的增量算子。
- 聚合: SUM/COUNT,AVG,MIN/MAX
- JOIN: INNER JOIN,OUTER JOIN
- 其他: HAVING,WHERE,GROUP BY
- 暂不支持:Subquery,UNION ALL,Window,CTE
对业务影响
- 要求基表开启binlog以记录增量数据,因此会有额外的存储开销。
- 计算出来的增量数据,最终以INSERT、DELETE、MERGE方式写入物化视图,因此对物化视图上面的查询没有影响。
适用场景
- 实时性要求高 (分钟级/秒级)
- 基表变化频率高但变化量小 (<30%)
- 刷新频率:分钟级,根据资源情况也可秒级。