Cassandra物化视图

时间:2017-06-21 07:42:04

标签: cassandra

假设此架构

CREATE TABLE t(
        a int,
        b int,
        c int,
        d int,
        e text,
        f date,
        g int,
        PRIMARY KEY (a,b)
)

我创建以下mv

CREATE MATERIALIZED VIEW t_mv as
        select a,b,c,d from t where c is not null and d is not null
         PRIMARY KEY (c,d,a,b);

如果我们运行此查询会发生什么

UPDATE t SET g=1 WHERE a=10 AND b = 20

正如你所看到的那样" g"被排除在" t_mv" ,我想知道cassandra在做什么?

t_mv是否有任何开销,或者cassandra巧妙地检测到t_mv和无操作没有变化

例如,如果我们有10个如上所述的物化视图,那么在mv影响性能中排除的更新是什么?或者表现等于没有mv的时候

1 个答案:

答案 0 :(得分:1)

Cassandra在上述条件下不会向物化视图发送变异。

使用您的表结构及其下方的本地系统上的快速演示是TRACE输出。enter image description here

更新实体化视图中的列时,会在TRACE下面进行更新: enter image description here

我希望这能回答你的问题。