已实现视图 GSoC 2010
来自 PostgreSQL 维基
跳转至导航跳转至搜索概述
已实现视图 (MV) 是一种优化技术,其行为类似于缓存。经典视图是虚拟表,而 MV 是基于视图定义的真实表。通过创建一个 MV,你可以预先计算代价较高的查询以加速某些查询。
已实现视图是由 Oracle、DB2、SQL Anywhere 或 SQL Server 等领先的数据库系统实现的一项非常有用的功能,并且是 PostgreSQL [1] 中由用户请求最多的功能。
学生姓名:Pavel Baroš
导师姓名:Robert Haas
可交付成果
总的思路是在今年夏天实现所谓的快照 MV。快照已实现视图通过重建 MV 定义来刷新特殊刷新命令。
此项目可分为三个主要步骤
- 创建 MV
- 更改语法
CREATE MATERIALIZED VIEW ..
- 确保后端创建表、在 pg_class 中制作记录等。
- 在 SELECT 中使用
- 了解后端(规则系统)以便在 SELECT 命令中使用 MV(在 SELECT 中使用时,从 MV 中获取行,而不是用视图定义重写)
- 创建刷新命令
- 再次更改语法
ALTER MATERIALIZED VIEW mvname REFRESH
- 对命令进行更改
时间表
5 月 31 日前
- 与社区讨论关于实现的具体事项
- 阅读代码(尤其是了解新版本 9.0)
6 月 1 日 - 6 月 15 日
- 实现新的关系种类
- 更改创建 mv 的语法
- 创建 mv(物理表),将元组保存到 pg_class 中
6 月 16 日 - 6 月 30 日
- 更改刷新命令的语法
- 考虑适用于 MV 的新系统规则
- 更改规则系统 - 后端应将 MV 视为表
7 月 1 日 - 7 月 15 日
- 创建刷新命令 - 考虑并实现它可以工作的方式
- 进行其他更改 - psql、pg_dump 等。
- 进行回归测试、测试案例
7 月 16 日 - 8 月 9 日
- 考虑可扩展性,以获得更好的 MV
- 代码审查
- 对 psql、pg_dump 等进行测试。
8 月 10 日 - 8 月 16 日
- 测试和提交