SQL中视图(Views)和物化视图(Materialized Views)之间的区别
任何数据库的主要组成部分是表,在其他话中说,为了使数据可访问,有视图的概念,我们可以说,借助表的视图,我们可以限制任何用户只能访问他所应该访问的数据。现在根据视图的特征和特点,我们可以区分 视图和物化视图 。
在本文中,我们将讨论SQL中视图和物化视图之间的重要 区别 。但在此之前,让我们分别了解视图和物化视图的基础知识,以更好地理解它们之间的区别。
SQL中的视图
视图 是通过执行“ SELECT查询 ”语句创建的表的逻辑和虚拟副本。这些 视图 不会存储在磁盘上。因此,每次需要某些数据时,必须执行查询。但是,查询表达式存储在磁盘上。
视图本身没有存储/更新成本。视图采用特定的架构设计,这意味着有一种SQL标准来定义视图。当需要访问数据不频繁,但数据经常得到更新时,使用视图。
SQL中的物化视图
物化视图 是计算和存储其内容的视图。物化视图也是一个逻辑虚拟表,但在这种情况下,查询的结果存储在表或磁盘中。物化视图的性能优于普通视图。这是因为数据存储在磁盘上。
有时,物化视图也被称为“索引视图”,因为查询后创建的表被索引并且可以更快、更有效地访问。当需要频繁访问数据且表中的数据不会经常更新时,使用物化视图。
SQL中视图和物化视图的区别
下表突出了视图和物化视图之间的重要区别−
键 | 视图 | 材料视图 |
---|---|---|
定义 | 从技术上讲,表的视图是由“select查询”创建的表的逻辑虚拟副本,但结果不会存储在磁盘上。 每当我们需要数据时,我们需要执行查询。因此,用户始终从原始表获取更新或最新的数据。 | 材料化视图也是由“select查询”驱动的数据的逻辑虚拟副本,但查询的结果将存储在表或磁盘中。 |
存储 | 在视图中,查询表达式的结果元组不会存储在磁盘上,只有查询表达式存储在磁盘上。 | 在材料化视图中,查询表达式和查询的结果元组都存储在磁盘上。 |
查询执行 | 查询表达式存储在磁盘上,而不是其结果,因此每当用户尝试从中提取数据时,查询表达式都会被执行,以便用户每次都能获得最新的更新值。 | 查询的结果存储在磁盘上,因此当用户尝试提取数据时,查询表达式不会每次都执行,这样用户就无法获得在数据库中更改的最新更新值。 |
成本效益 | 由于视图没有与之相关的存储成本,因此它们也没有与之相关的更新成本。 | 材料化视图与之相关的存储成本,因此也与之相关的更新成本。 |
设计 | SQL中的视图采用固定的体系结构方法进行设计,因此视图定义有SQL标准。 | SQL中的材料化视图采用通用的体系结构方法进行设计,因此没有定义它的SQL标准,并且某些数据库系统提供其功能作为扩展。 |
用途 | 在数据很少被访问并且表中的数据经常更新时,通常使用视图。 | 当数据需要频繁访问并且表中的数据不经常更新时,使用材料化视图。 |
结论
SQL中的视图和物化视图在很大程度上是不同的。当数据是很少被访问并且表中的数据经常更新时,使用视图。相反,当数据经常被访问并且表中的数据不经常更新时,使用物化视图。