假设这个架构
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 回答
在上述条件下,Cassandra不会向物化视图发送变异 .
在您的表结构及以下的本地系统上进行快速演示是TRACE输出 .
更新实体化视图中显示的列时,会在TRACE下方显示:
我希望这回答了你的问题 .