# 增量刷新
#### 刷新原理
增量刷新仅处理自上次刷新以来的增量数据，因此从计算量上比全量刷新要小很多，消耗资源也比较少。
![](https://support.huaweicloud.com/devg-911-dws/figure/zh-cn_image_0000002560706605.png "点击放大")
增量刷新语法：
```
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%)
- 刷新频率：分钟级，根据资源情况也可秒级。
 
