00:00
接下来我们来聊聊这个物化视图啊,物化视图那什么叫物化视图呢?啊,很多框架引擎它都有物化视图这个概念,它理可以理解为是包含的查询结果的数据库对象。可能是对远程数据的本地拷贝,也可能是啊,Join之后的结果,也可能是聚合后的结果啊,说了这么多,其实就是什么预先存储的一个什么查询结果,举个例子。那假设这是一张普通的表,对吧?有这么几个字的,那这就是普通的一个什么基表对吧?我们叫贝表,那什么叫物化视图呢?它记录了什么操作,记录我们的操作加结果对不对?那比如说操作是什么呢?举一个呃。
01:06
Class啊,然后呢,Some啊,Score啊,或者说avg啊,咱们以普通circle来理解啊,From这张表,然后呢啊,Group by这个class,你看这张对于这张表而言,它是一个普通的表,对吧,它有好几个字段,那这个是不是对这张表的一个查询和聚合啊?对吧,那物化视图是什么呢?它记录了。我这个操作这就对应操作,那结果呢,就是我这个SQL语句得到了结果,它同时也记录下来,那我们在数据库里面是不是同样也有一个概念叫视图啊。那跟物化视图的区别在哪里?视图仅仅记录要操作的时候,但是不保存结果。也就是说不光记招式啊,没有实操啊,就你呃这种普通的视图,就你查这个视图的时候,他才根据这个查询逻辑现查那个。
02:11
基表。对吧,他的方式是现查。那物化视图是什么效果呢?基表的数据一变,那它比如说又新进来了几条数据,那这几条数据它立马就会再走一遍这个结果,再更新一下结果,他把呃,每一次数据变化都会执行这个逻辑,然后都会生成结果,这些都记录下来,这个就是所谓的物化视图啊,可house也有啊,对吧?既有招式也有造成的伤害对吧?有操作有结果,有操作有结果,这就是所谓的物好仕途。区别就是跟视图的区别,就是物化俩字对吧?啊,说白了就是预先什么存储查询结果的一种数据库对象啊,特重点在哪,结果也有,那固化视图我们就是查询结果预先存储起来了,一张特殊的表,它也是一张表,对吧,因为它有数据。
03:12
那物化视图出现为了满足什么呢?对原始明细数据任意维度的分析,也能对固定维度进行分析查询,那这个听说来说去怎么感觉有点熟悉呀?是不是跟我们前面讲的roll up有点像啊,对吧?但roll up范围没有它广,我们可以理解为物化视图是roll up的升级版。啊,升级版确实来,我们具体来看一看吧,适用场景呃,分析需求,覆盖明细数据啊,既要明细数据,也要以固定维度去查询,比如说做聚合对吧,两者都要的情况下,那我们可以考虑用物化视图,那查询仅涉及表中的很小一部分列或者行。
04:07
对吧?那物化视图不是要记录操作吗?我是不是可以where,那我select是不是也可以选择几个字段就好了呀,对吧?就像我们刚才这个例子啊,这个操作我是不是只需要这两列就行了,对吧?我不用五列都要,对吧,只。保留你要的一些列或者行,呃,查询包含一些耗时处理操作。比如说如果我不。拿一批数据聚合一下,那可能。我现查的话可能要聚合很久对吧,还有一些匹配前缀索引等等,匹配不同前缀所引,那其实这两点,呃,这几个看起来是不是跟roll up还是很像对吧?没事带着疑问我们往下走,那它也有一定的优势啊,一个是提升性能。什么样呢?经常重复使用的一些查询,对吧,比如说刚才这个例子,我经常啊要做这个查询。
05:08
那既然如此,那你就把它雾化下来对吧,把这个操作物还有它的查询结果物化记录下来,变成自动的,这边一变这边就会执行,然后就结果保存下来,也不会影响基表啊。啊,物化视图是DOS自动维护啊,这个要知道无论是新的导入还是删除都能保证什么。保证基表跟物化视图表的一致性啊,就这一块不用我们去管啊,不用去维护,那这样就很爽了,对不对啊,不用我们操心了,另外呢。对于一张基表,你是不是很可能创建很多的物化视图啊,是可以的,这是允许的,就比如说刚才这个例子,我基表是这样。我这只是其中一种物化视图的。表对吧,记录这个操作我是不还可以基于基表做其他查询,还有其他的结果保存下来,是不是可以建立很多物化视图对吧?那这么多物化视图它会自动匹配到最优的啊。
06:14
那我们说了这么多啊,刚才也提到物化视图跟roll up是不是很像啊?那么大家注意,物化视图是后边出的功能,在早期版本并没有物化视图,所以在没有物化视图之前一般都是用什么roll up?那我们说roll up有什么用?一个是更粗力度的预具盒对不对?而且呢,还可以做一个前缀索引调整,一般是之前我们都用roll up来做,总而言之一句话。什么意思呢?呃,Roll up能支持的,我物化视图都可以。就就像影视剧里面那那那个东厂西厂对吧?啊,那个西厂的老大是陈坤演的,说呃什么来着,我也忘了说你们东厂什么。
07:04
能做的他也能做,你们不敢动的,他们感动什么什么,就就就这个意思对吧,啊,物化仕途。它功能更强大啊,它覆盖了up功能,同时还。更丰富的聚合函数,对吧?而且它对于明细模型roll up不能做聚合,但是物化视图它可以,而且更加灵活,更强,更。大啊,不是大更强大啊,行,那这是一个物化视图啊,我们了解一下它的一个大概的意思跟。原理啊,不是原理啊,大概的意思跟他跟roll up的一个区别。
我来说两句