2017-06-21 50 views
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任何開銷,或卡桑德拉巧妙地檢測存在於t_mv和無操作

例如沒有變化。如果我們有10個物化視圖就像上面提到的,是更新排除在MV衝擊性能?或者在沒有mv時等於的性能

回答

1

Cassandra在上述條件下不向突發視圖發送突變。

在本地系統上使用表格結構進行快速演示是TRACE輸出。 enter image description here

在更新這是目前在物化視圖的列,給出以下TRACE: enter image description here

我希望這回答了你的問題。