这是彭文华的第143篇原创
最近选题都选神经了,就像一只在玩耍毛线团的猫,到处找线头。终于在一个群里看到有人问一个合适的问题了,我这是久旱逢甘霖哪!
刚看到这个问题的时候我都楞了一下。说起来这个问题我还是在 10 多年前研究的。那时候玩的是 Oracle 。这个问题的回答当然是肯定的,物化视图占存储空间。但我还想多扯两句,把这件事情掰开揉碎了讲一遍。大概是这么个思路吧:
视图是啥?解决啥问题?
物化视图又是啥?又解决啥问题?
大数据场景下,物化视图怎么用?
什么是视图?
既然都问这个问题了,那你肯定是个 SQL Boy 了。我们在跑数据的时候,通常要关联很多表。当业务逐渐复杂,表的数量变多的时候,表和表之间的关联关系就会非常非常的繁复。
为了让事情变的更简单,我们通常会把相对比较常用,且关系比较固定的几个表关联的内容固化下来,以后我们每次都用这个 SQL 脚本就好了。
各个数据库开发团队也发现这个强需求,就推出了一个“View 视图”的功能,这个视图本质上就是一个 Select 语句。我们查询这个视图,实际上就是做了一个嵌套查询, view 的名称恒等于子查询中的内容。
因为 View 就是一段 Select 语句,所以 View 几乎不占存储空间。