1.视图
PostgreSQL视图其实和mysql视图是一样的,视图其实是个虚拟的表,实际上是一个SQL拼接而成的虚拟表(假表),可能是有一个表或者多个表、视图关联而成的复杂的SQL,而这个SQL一般都是select语句(当然也可能是 update、delete 等的语句,但是可能会有诸多限制,而且用视图进行这些操作也不安全,一般也不会这么用。)。而视图的用途常常用于展示一些用户需要的信息,隐藏一些敏感或者是不重要的数据,汇总一些关键数据展示给用户。
操作:可以像表一样查询视图的字段,也可以当做一个表进行关联查询。
查询底层实现:通过创建视图的语句进行查询,每次会实时查询底表,所以数据是实时的。
索引:走表的索引。
2.物化视图
基本功能和视图类似。对标实体表和普通视图,会将数据真实的存储在服务器中,会比普通视图更像一个表。上面说到的视图是一个虚拟的表,这个物化视图其实是一个物理表,它可以用自己的索引。
操作:可以像表一样查询视图的字段,也可以当做一个表进行关联查询。可以创建索引。
查询底层实现:创建后就真的被当做是表了,即结果都物化(固化)成了一个表,假如创建语句的底层表数据有变化,也不会影响到这个物化视图的数据,除非手动进行刷新。所以每次查询的都是固化的数据,不是实时的数据。
索引:走自己的索引,可以创建索引。
物化视图增量更新与全量更新
全量更新: 直接去基础表里面查询数据,刷新过程中会对该物化视图的所有的select操作阻塞,但刷新效率快。
增量刷新: 刷新要具备有唯一字段索引,将基础表查询出来的数据和现在物化视图表进行对比,填充差量数据,但刷新过程中不会对该物化视图的select操作进行阻塞,但刷新比全量更新慢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)