如何解决在Cassandra中,唯一列是否可以用作分区键?
我有一个具有多列的表用户,每个用户都有一个唯一的用户ID。 因为它是唯一的,所以除非我想在查询中使用该列,否则不必指定集群键。这是不好的,因为每个分区都由一行组成吗?如果由于某种原因不好,在这种情况下最佳做法是什么? 谢谢您的帮助!
编辑:如果我有一个查询需要返回所有用户名,那么如何才能获得良好的性能呢?从该表执行此操作对我来说似乎不是很有效,我是否应该在另一个表中直接复制集合中的所有用户名?然后它们全部集中在一个地方,读取不必跳过多个节点。
解决方法
我只是answered the similar question。简而言之-它实际上取决于访问模式和表设置。您可能需要调整表参数以获得最佳性能,但设置可能取决于数据量和其他要求。
,在Cassandra中定义主键时始终有两个(主要)注意事项:
- 数据分发
- 查询模式匹配
从数据分发的角度来看,没有比使用唯一键作为分区键更好的了。它们越多,它们应散列得越均匀,从而均匀分布。
但是,分配得很好但不符合所需查询模式的键却毫无用处。
tl; dr;
如果唯一键是查询表所依据的唯一键,那么它将为分区键做出好选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。