【问题标题】:Cassandra Materialized viewCassandra 物化视图
【发布时间】:2017-11-23 23:38:26
【问题描述】:

假设这个架构

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

你可以看到 "t_mv" 中排除了 "g" ,我想知道 cassandra 在内部做什么?

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

例如,如果我们有 10 个像上面提到的物化视图,那么在 mv 中排除的更新是否会影响性能?或等于没有mv时的性能

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    Cassandra 在上述情况下不会向物化视图发送突变。

    用你的表结构在本地系统上做了一个快速演示,下面是 TRACE 输出。

    在更新实体化视图中存在的列时,会给出以下 TRACE:

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

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2018-04-13
      • 1970-01-01
      • 2023-03-26
      • 2017-03-26
      • 2018-07-04
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多