唯一列在cassandra中是否可以用作分区键?

gajydyqb  于 2021-06-09  发布在  Cassandra
关注(0)|答案(2)|浏览(339)

我有一个具有多个列的表用户,每个用户都有一个唯一的userid。因为它是唯一的,所以我不必指定集群键,除非我想在查询中使用该列。这是不是很糟糕,因为每个分区都由一行组成?如果不管什么原因都不好,在这种情况下最好的做法是什么?谢谢你的帮助!
edit:如果我有一个需要返回所有用户名的查询,那么如何才能以良好的性能完成这项工作?从这个表执行它对我来说似乎不是很有效,我是否应该创建另一个表,在该表中简单地复制集合中的所有用户名?然后它们都在一个地方,读取不必跳过多个节点。

wvmv3b1j

wvmv3b1j1#

我刚刚回答了类似的问题。简而言之,这实际上取决于访问模式和表设置。您可能需要调整表参数以获得最佳性能,但设置可能取决于数据量和其他要求。

jgzswidk

jgzswidk2#

在cassandra中定义主键时,通常有两个(主要)考虑因素:
数据分布
查询模式匹配
从数据分布的Angular 来看,使用唯一键作为分区键是最好的选择。它们的数量越多,就越均匀地散开,从而得到均匀的分布。
但是,一个分布良好但不适合所需查询模式的键是非常无用的。
热释光;博士;
如果唯一键是查询表的唯一依据,那么它是分区键的最佳选择。

相关问题