我在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的文档,他们写的那个例子对我的案子来说并不太好,至少在我的理解中! :)
答案 0 :(得分:2)
尽量避免使用二级索引
如果唯一的查询是检索特定A-IUD的所有B-IUD,请使用复合主键(A-IUD,B-IUD)。
如果您还需要搜索特定的B-IUD,请使用两个表
1:表1:以B-IUD为主键,其余列为as 2:表2:使用复合主键(A-IUD,B-IUD)和其余列