视图:
视图的底层实现逻辑其实是一个子查询
视图是一张虚拟的表,只保存定义,不存储实际数据
物化视图:
物化就是将这张表具体化
物化视图是一张物理表,把要查询的数据存成一张表
使用物化视图的目的就是通过预计算,提高查询性能,占用一定的存储空间
数据存储方式:
视图:视图不存储数据本身,他只是一张虚拟表,将查询结果暂时保存,每次查询视图时都会重新执行原始查询
物化视图:物化视图存储数据的实际副本,物化视图的数据在物化视图中被预先计算和存储,而不是每次查询时重新计算
性能:
视图:视图的查询性能比物化视图的查询性能要低,因为每次查询都要重新计算数据,特别是在复杂的查询中
物化视图:物化视图提供更快的查询性能,因为他们避免了重复执行查询,而是直接饭hi已经存储的数据
视图和物化视图的区别:
视图是一张虚拟表,它并不存储数据,而是基于一个或者多个表的查询结果以某种也定方式创建的,视图可以用来简化复杂的查询,隐藏数据的细节,减少应用程序的代码量,提高性能等.
物化视图是一种实际存储数据的表,它是基于一个或多个表的查询结果以某种特定方式创建的,与视图不同的是,物化视图存储查询结果,而不是每次查询时动态生成.具体来说,当创建物化视图时,数据库会执行查询操作,并将查询结果存储在一张表总.在之后的查询中,数据库可以直接使用物化视图中的数据,而不需要再次执行查询操作,从而提高查询的性能.
总的来说,视图和物化视图的区别在于视图是一张虚拟表,不实际存储数据,物化视图是一种实际存储数据的表.视图适合处理动态数据集,物化视图适合处理静态数据集,他们根据具体场景需要选择使用.
| 属性 | 视图 | 物化视图
| 数据存储 | 不存储 | 存储
| 查询性能 | 通常较慢 | 通常较快
| 数据一致性 | 与基表一致 | 与基表不一致
| 更新 | 可以更新 | 不能更新
| 安全性 | 较低 | 较高