Apache Cassandra。索引或具有复合主键的表的特定情况

时间:2015-05-27 21:53:59

标签: indexing cassandra cassandra-2.0 composite-primary-key

我在Cassandra的POC中有这种情况。

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));

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

在我的应用程序的生命周期中,我将不得不搜索所有B-IUD以寻找特定的A-IUD。

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

我已经阅读过DataStax的文档,他们写的那个例子对我的案子来说并不太好,至少在我的理解中! :)

1 个答案:

答案 0 :(得分:2)

尽量避免使用二级索引

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

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

1:表1:以B-IUD为主键,其余列为as 2:表2:使用复合主键(A-IUD,B-IUD)和其余列