【发布时间】:2023-03-08 22:40:01
【问题描述】:
在 Cassandra 中,我有一个包含 (a,b,c) 列的表格。我要么需要查询SELECT * FROM {table} WHERE a = ? and b = ? 和SELECT * FROM {table} WHERE a = ? and c = ?。
在这种情况下,我应该怎么做主键?我可以用PRIMARY KEY(a,b) 和PRIMARY KEY(a,c) 制作两张表吗,因为 Cassandra 需要按照列出的顺序列出全部分区键和/或非分区键?或者我可以做类似PRIMARY KEY(a) 并在b 和c 上创建INDEX 吗?
基本上,主键是否应该只包含唯一性所需的最少数量的值(并从这些值中选择适当的分区键)?如果我因为需要查询而将其他列添加到主键,性能会提高吗?
【问题讨论】:
-
很难回答,
with the information that you have provided。请编辑您的完整架构和列基数详细信息以进行更多调查。只有有了这些信息,才能分析架构。
标签: database-design cassandra database nosql