首页 文章

Cassandra物化视图

提问于
浏览
0

假设这个架构

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 回答

  • 1

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

    在您的表结构及以下的本地系统上进行快速演示是TRACE输出 .
    enter image description here

    更新实体化视图中显示的列时,会在TRACE下方显示:
    enter image description here

    我希望这回答了你的问题 .

相关问题