Postgresql Materialized View
PostgreSQL 的物化视图一般用于缓存复杂、昂贵但不要求实时的查询结果。与普通视图不同,物化视图是真实存在的表,并且需要手动更新数据。
与 ClickHouse 的 物化视图 区别
能力 | ClickHouse 物化视图 | PG 物化视图 |
---|---|---|
存储数据 | 不存储数据,对物化视图的插入、查询会被重定向到目标表 | 会存储数据 |
查询优化 | 对物化视图的查询不会被优化(WHERE-TO-PREWHERE) | 充分利用 PG 规则系统的查询重写能力 [1],和查询普通表性能相当 |
更新方式 | 流式更新,源表插入实时由物化视图处理 | 手动更新,需要手动执行 REFRESH MATERIALIZED VIEW 更新物化视图;分为增量更新和全量更新 [^3] |
使用场景 | 实时性要求较高的场合;更偏向于系统内部的实时 ETL 能力 | 对数据实时性要求不高的场合 |
Materialized views cache the result of a complex and expensive query and allow you to refresh this result periodically.[2]