理解和定义Cassandra中的Primay键

时间:2017-09-05 16:48:29

标签: cassandra cassandra-3.0

在Cassandra,我可以说我有一个名为cats

的表

在表格cat中,我们可以说猫只能根据猫的颜色和猫的名字进行唯一识别,例如;

color: blue, name: henry
然而,可能有许多蓝色的猫。同样可能有很多名叫亨利的猫。然而,只有一只猫被命名为Henry,其颜色为蓝色。

我的问题是,我应该将什么定义为主键以及如何定义。例如,我应该将名称作为分区键,还是应该将颜色设置为分区键,还是应该将这两个字段作为分区键的一部分?将颜色和/或名称添加为聚类键是否有益?我还读过散列值作为分区键;将具有单独的散列值作为分区键并添加名称和颜色作为二级索引在这里提供任何好处?

这里的性能影响是什么?什么类型的表设置最高效?

用户将搜索名称和颜色,或只搜索颜色,但不会只搜索名称。

提前致谢。

1 个答案:

答案 0 :(得分:1)

要从表中检索数据,必须提供分区键中定义的所有列的值。因为在你的情况下是用户 可以只按颜色查询,也可以按照定义

查询颜色和名称
  

PRIMARY KEY(颜色,名称);

使用此功能,您只能使用颜色进行查询,因为它是分区键,并且还可以使用两个键进行查询