大家首先需要把物化、延迟物化的概念和物化视图的概念区分开来。关于视图和物化视图的概念这里不再赘述。
物化,顾名思义就是物理转换,对于数据来说,物化表示把数据由某个中间形态转换成原始,真实的形态。有点抽象,如下所示,我们以人名为例,name=YANDONG,YANDONG就是真实的物理表示,但是在软件系统中,为了实现计算和存储的优化,会对原始数据做各种中间形态转换,如字典映射,压缩等等。但是数据最后还是要表现它的真实形态的(真实形态才有意义),这时候就需要通过物化,将中间形态转换为原始形态
从用户角度看,Row结构的数据更契合用户查询习惯,因此为了把列式存储的Column格式,跟用户查询习惯和表达意思对应上,需要把数据转换成Row格式,这属于列式存储里面的物化。
清楚了物化的概念之后,延迟物化就比较好理解了,其实就是把物化尽量移到查询计算生命周期的末尾。通俗讲,中间状态是优化过程,尽可能让优化过程占据生命周期。以下面的查询为例(列存):
select name from tb where id > 10 and age > 30