SQL中视图和物化视图的区别


任何数据库的主要组成部分都是它的表,为了使数据访问自定义,存在视图的概念,换句话说,借助表的视图,我们可以限制任何用户只能访问他应该访问的数据。现在,根据视图的特性和特征,我们可以区分视图和物化视图

在本文中,我们将讨论SQL中视图和物化视图之间重要的区别。但在讨论它们的区别之前,让我们先分别了解视图和物化视图的基础知识,以便更好地理解它们之间的区别。

SQL中的视图

视图是表的逻辑虚拟副本,通过执行"SELECT 查询"语句创建。 视图不会存储在磁盘上的任何位置。因此,每次需要某些数据时,都必须执行查询。但是,查询表达式存储在磁盘上。

视图没有与其相关的存储/更新成本。视图采用特定的架构设计,这意味着存在定义视图的SQL标准。当数据需要不频繁访问但频繁更新时,使用视图。

SQL中的物化视图

物化视图是指其内容已计算并存储的视图。物化视图也是逻辑虚拟表,但在这种情况下,查询的结果存储在表或磁盘中。物化视图的性能优于普通视图。这是因为数据存储在磁盘上。

有时,物化视图也称为“索引视图”,因为查询后创建的表已建立索引,可以更快、更高效地访问。当需要频繁访问数据且表中的数据不频繁更新时,使用物化视图。

SQL中视图和物化视图的区别

下表突出显示了视图和物化视图之间重要的区别:

关键 视图 物化视图
定义 从技术上讲,表的视图是由“select 查询”创建的表的逻辑虚拟副本,但结果不会存储在磁盘上的任何位置。每当我们需要数据时,都需要执行查询。因此,用户始终从原始表中获取更新或最新的数据。 物化视图也是由“select 查询”驱动的数据的逻辑虚拟副本,但查询的结果将存储在表或磁盘中。
存储 在视图中,查询表达式的结果元组不会存储在磁盘上,只有查询表达式存储在磁盘上。 对于物化视图,查询表达式和查询的结果元组都存储在磁盘上。
查询执行 查询表达式存储在磁盘上,而不是其结果,因此每次用户尝试从中获取数据时都会执行查询表达式,以便用户每次都能获得最新的更新值。 查询的结果存储在磁盘上,因此每次用户尝试获取数据时都不会执行查询表达式,因此如果数据库中的数据发生更改,用户将不会获得最新的更新值。
成本效益 由于视图没有任何与其相关的存储成本,因此也没有任何与其相关的更新成本。 物化视图有与其相关的存储成本,因此也有与其相关的更新成本。
设计 SQL中的视图采用固定的架构方法设计,因此存在定义视图的SQL标准。 SQL中的物化视图采用通用的架构方法设计,因此没有定义它的SQL标准,其功能由某些数据库系统作为扩展提供。
用法 通常在需要不频繁访问数据且表中的数据频繁更新时使用视图。 通常在需要频繁访问数据且表中的数据不频繁更新时使用物化视图。

结论

SQL中的视图和物化视图彼此之间非常不同。当需要不频繁访问数据且表中的数据频繁更新时,使用视图。相反,当需要频繁访问数据且表中的数据不频繁更新时,使用物化视图。

更新于:2023年9月2日

57K+ 次查看

启动你的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.