什么是物化视图
物化视图(Materialized View)是一种预先计算和存储的查询结果,类似于数据库中的表。与普通视图不同,物化视图在创建时会将查询的结果物理存储在内存或磁盘上,而不是在查询时动态计算。
物化视图与视图的区别
- 视图是虚拟的,逻辑存在的,只有定义没有存储数据;
- 物化视图是真实的,物理存在的,里面存储着预计算的数据;
- 视图的目的是简化降低查询的复杂度,而物化视图的目的是提高查询性能。
物化视图语法
create materialized view view_name
[refresh {fast | complete | force } {start with date_exp]
[next expr] | on demand}]
[enable query rewrite]
as select select columns1,columns2 from table_name where condition
[with [cascaded | local] check option];
- create materialized view 是创建物化视图的关键字
- view_name是创建物化视图的名字
- refresh是指定物化视图的刷新方式,刷新方式包括 【fast表示只刷新需要更新的数据】【complete表示重新计算整个物化视图】【force表示根据实际需要选择刷新方式】【on demand表示手动触发刷新】
- start with 表示物化视图第一次刷新的时间点 可以是一个日期表达式(date_exp), 例如 TO_DATE('2022-01-01', 'YYYY-MM-DD')
- next表示下一次刷新的时间间隔 可以是一个字面量表达式或数值表达式(expr),例如 'SYSDATE + 1' 表示每隔一天刷新一次
- enable query rewrite是一个可选项 用于启用查询重写功能 以便优化查询性能
- [with [cascaded | local] check option]是可选项 【用于指定检查约束条件 cascaded 表示检查约束应用于基础表和物化视图 】【local表示检查约束条件是否满足物化视图】