阿帕奇卡桑德拉。具有复合主键的索引或 table 的特定情况

Apache Cassandra. Specific case for an Index or a table with composite primary key

我在 Cassandra 的 POC 中有这个场景。

一个table

CREATE TABLE B (B-UID UUID, 
    A-UID UUID,
    CREATED_AT timestamp ,
    JSON text,
    PARENT_B-UID UUID,
    POSTALCODE text,
    CUSTOMER_TYPE text,
    START_DATE timestamp, 
    END_DATE timestamp, 
    SOME_PRICE int, 
PRIMARY KEY (B-UID));

24k rpm 写入/2k rpm 读取。在大多数情况下,对于 1 个 A-UID,我会有 67 个 B-IUD。

在我的应用程序的生命周期中,我必须搜索所有 B-IUD 以找到特定的 A-IUD。

我的问题是:使用复合主键创建 table 还是创建 A-IUD 索引更好?写入性能会受到复合主键的影响吗?

我已经阅读了 DataStax 上的文档,他们在那里编写的示例对我来说不太好,至少在我看来是这样!!! :)

尽量避免二级索引

如果唯一的查询是检索特定 A-IUD 的所有 B-IUD,则具有复合主键(A-IUD、B-IUD)。

如果您还需要搜索特定的 B-IUD,有两个表

1 : Table 1 : 以 B-IUD 作为主键,其余列保持原样
2 : Table 2 : 具有复合主键(A-IUD、B-IUD)和其余列原样