Skip to content

Commit

Permalink
update sql docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fengzhao committed Feb 6, 2025
1 parent c3ebe0d commit f686168
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions docs/olap/01.OLAP概述.md
Original file line number Diff line number Diff line change
Expand Up @@ -705,15 +705,15 @@ Mesa 为了解决上面提到的两个问题,提出了一个预聚合的存储
由于视图中的数据是从基表中查询出来的,所以一旦基表中的数据发生改变,视图就会过期,所以视图中的数据也要发生改变。保持视图物化一直在最新状态的过程称为**物化视图维护(或者叫数据刷新)**,物化视图维护的策略大概有几种:

- 每当数据变更时就进行视图物化(实时刷新)
- 周期性的进行视图物化(定时任务来定期刷新
- 当需要访问视图时才进行视图物化(需要查询时才来计算
- 周期性的进行视图物化(定期刷新
- 当需要访问视图时才进行视图物化(延迟到需要查询时才来计算


物化视图,跟预聚合数据模型其实很类似,其本质都是**将用户定义的查询提前计算好,按用户要求自动刷新视图中的数据**数据刷新的方式一般分为两种,**全量刷新****增量刷新**
物化视图,跟预聚合数据模型其实很类似,其本质都是**将用户定义的查询提前计算好,按用户要求自动刷新视图中的数据**,其视图数据刷新的方式一般分为两种:**全量刷新****增量刷新**

- 全量刷新每次重新运行SQL,将算好的新数据全量覆盖旧数据。
- **全量刷新**每次重新运行SQL,将算好的新数据全量覆盖旧数据。

- 增量刷新通过特定算法,每次只计算自上次刷新以来发生变化的数据部分,然后定向更新物化视图中的部分数据。
- **增量刷新**通过特定算法,每次只计算自上次刷新以来发生变化的数据部分,然后定向更新物化视图中的部分数据。


显然,增量刷新这种方法显著减少了刷新开销,可以更高频地更新。特别适用于大规模数据集或频繁更新的场景。
Expand All @@ -733,15 +733,22 @@ Mesa 为了解决上面提到的两个问题,提出了一个预聚合的存储

- 对数据延迟要求高的秒级延迟需求。

根据物化视图的更新周期,StarRocks支持两种类型的物化视图:**同步物化视图****异步物化视图**


**物化视图查询改写**

物化视图(Materialized View)的查询改写功能(Query Rewrite)


**物化视图查询改写和透明加速**

物化视图(Materialized View)的**查询改写**功能(Query Rewrite)

这是 Oracle 数据库的一项核心优化技术,允许数据库优化器在执行用户查询时,自动将查询重写为对物化视图的访问,从而避免对基础表进行实时计算。

优化器能够自动检测用户的查询,并尝试将其重写为对物化视图的访问。基本工作原理:**优化器会分析用户的查询,并将其与现有的物化视图进行匹配。如果匹配成功,优化器会生成一个新的查询计划,将用户的查询重写为对物化视图的访问。**
优化器能够自动检测用户的查询,并尝试将其重写为对物化视图的访问。基本工作原理:**用户只需提交标准 SQL 查询,系统会自动选择最优的执行计划(优化器会分析用户的查询,并将其与现有的物化视图进行匹配。如果匹配成功,优化器会生成一个新的查询计划,将用户对原始基表的查询重写为对物化视图的访问)。这一过程对用户完全透明,以达到透明加速的效果**




```SQL

Expand All @@ -756,7 +763,9 @@ CREATE TABLE sales (
CREATE MATERIALIZED VIEW mv_sales_summary
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
ENABLE QUERY REWRITE
E

NABLE QUERY REWRITE
AS
SELECT region, SUM(amount) AS total_sales
FROM sales
Expand Down

0 comments on commit f686168

Please sign in to comment.