Cassandra - 是否可以更新也用于物化视图 APK 的 table 列?

Cassandra - Is it OK to update a table's column which is aslo used for materialized view's PK?

不知道能不能改一个table的值,也用在物化视图的PK中? 如果没问题,如果有人能解释一下它是如何工作的(插入和删除?),我将不胜感激

例如,具有以下 tables:

CREATE TABLE users (
    id uuid,
    username text,
    category int,
    created timestamp,
    PRIMARY KEY (username) //Show users ASC
)

CREATE MATERIALIZED VIEW category_username AS
    SELECT username, category
    FROM keyspace.users
    WHERE username IS NOT NULL AND category IS NOT NULL
    PRIMARY KEY (category, username); //Show users by category ASC

然后我将用户的类别更改为不同于他现在的类别:

UPDATE keyspace.users
    SET category = 'SomeUniqueInt'
    WHERE username = 'IAmGroot' IF EXISTS;

category_username 会相应更新吗?

这是对这个question的评价。

类似于普通table Cassandra 将删除之前的记录并从物化视图中插入带有用户名的更新类别。

在 Cassandra 中删除创建墓碑

  1. 墓碑占用 space 并且可以显着增加您需要的存储量。
  2. 查询具有大量墓碑的 tables 会导致性能问题,并导致延迟和堆压力。

所以如果你经常更新用户类别,那么会产生巨大的墓碑。