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

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

任何数据库的主要组成部分都是其表,为了使数据访问性更加自定义,有视图的概念,换句话说,我们可以通过表的视图来限制任何用户只能访问他应该访问的数据。 现在基于视图的特性和特点,我们可以区分视图和物化视图。

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

阅读更多:MySQL 教程

SQL中的视图

视图 是通过执行“select查询”语句创建的表的逻辑和虚拟副本。 视图不存储在磁盘上的任何位置。 因此,每次需要执行查询时,会查询表达式存储在磁盘上。

视图没有与其相关的存储/更新成本。 视图设计有一种特定的体系结构,这意味着有一个SQL标准来定义视图。 当数据需要不经常访问但数据经常更新时使用视图。

SQL中的物化视图

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

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

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

以下表格突出了视图和物化视图之间的重要区别 –

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

结论

SQL中的视图和材料化视图非常不同。当数据很少访问且表中的数据经常更新时,通常使用视图。相反,当经常访问数据且表中的数据不经常更新时,则使用材料化视图。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

MySQL 教程