Cassandra - 物化视图对 table 删除优化的影响

Cassandra - Impact of a Materialized View on table delete optimisation

我知道使用物化视图会增加 10%,但我想知道(目前还没有找到任何线索)是否会对 table基于主键进行大删除时的删除优化

这里有一个案例:

TABLE a_simple_table (
    year int,
    fulldate date,
    ref1 text,
    ref2 text,
    data blob,
    PRIMARY KEY ((year), fulldate, ref1, ref2)
);

MATERIALIZED VIEW demo.a_simple_table_view 
AS SELECT year, fulldate, ref1, ref2, data
FROM demo.a_simple_table
WHERE ref1 IS NOT NULL AND year IS NOT NULL AND fulldate IS NOT NULL AND ref2 IS NOT NULL
PRIMARY KEY ((ref1), year, fulldate, ref2)
WITH CLUSTERING ORDER BY (year DESC, fulldate DESC, ref2 ASC);

根据我的理解和别人告诉我的,当我们执行以下操作时:

DELETE from a_simple_table WHERE year = 2017;

Cassandra 仅标记一个墓碑,因此如果主键值 2017 下的 table 中有 100 行,我们不会执行 100 行删除。

但是,由于物化视图必须找到要删除的每一行到他自己的 table,删除成本变成多少?

删除操作与插入操作无异: http://www.doanduyhai.com/blog/?p=1930

来自 https://www.datastax.com/dev/blog/new-in-cassandra-3-0-materialized-views

当删除发生时,物化视图将查询基table中所有被删除的值并为每个物化视图行生成逻辑删除,因为需要在视图中进行逻辑删除的值不包括在基地 table 的墓碑中...

基本上 "hit" 就好像您尝试将所有值插入基础 table 行中一样。由于物化视图中的墓碑数量增加,阅读将受到打击。