Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解和定义Cassandra中的主键_Cassandra_Cassandra 3.0 - Fatal编程技术网

理解和定义Cassandra中的主键

理解和定义Cassandra中的主键,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,在Cassandra中,假设我有一个名为cats 在猫表中,让我们假设一只猫只能根据猫的颜色和猫的名字来唯一识别,例如 color: blue, name: henry 然而,可能有许多猫是蓝色的。类似地,可能会有很多猫叫亨利。然而,只有一只猫名叫亨利,它的颜色是蓝色的 我的问题是,我应该将什么定义为主键以及如何定义。例如,我应该将名称作为分区键,还是将颜色作为分区键,还是将这两个字段都作为分区键的一部分?添加颜色和/或名称作为聚类键是否有益?我也读过关于散列值作为分区键的内容;使用一个单独的

在Cassandra中,假设我有一个名为
cats

在猫表中,让我们假设一只猫只能根据猫的颜色和猫的名字来唯一识别,例如

color: blue, name: henry
然而,可能有许多猫是蓝色的。类似地,可能会有很多猫叫亨利。然而,只有一只猫名叫亨利,它的颜色是蓝色的

我的问题是,我应该将什么定义为主键以及如何定义。例如,我应该将名称作为分区键,还是将颜色作为分区键,还是将这两个字段都作为分区键的一部分?添加颜色和/或名称作为聚类键是否有益?我也读过关于散列值作为分区键的内容;使用一个单独的散列值作为分区键,并将名称和颜色添加为二级索引,这会有什么好处吗

这里的性能影响是什么?哪种表格设置最有效

用户将按名称和颜色或仅按颜色进行搜索,但绝不只按名称进行搜索


提前谢谢

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

主键(颜色、名称)

有了它,您可以只使用颜色进行查询,因为它是一个分区键,还可以同时使用这两个键进行查询