使用Cassandra作为db:
假设我们有这个架构
我primary_key((id1),id2,type)
上index
type
{1}},因为我们想按id1
和id2
进行查询。
查询是否像
SELECT * FROM my_table WHERE id1=xxx AND type='some type'
表现不错?
我想知道我们是否必须为这种情况创建和管理另一个表?
答案 0 :(得分:1)
您计划使用二级索引的方式是理想的(很少见)。原因如下:
总的来说,您的数据模型应该表现良好并且可以扩展。然而,如果你寻找最佳表现,我建议你使用一个附加表((id1),type,id2)。
结局注意:如果您的类型数量有限,您可以考虑单独使用((id1),type,id2)作为单个表。当通过id1-id2查询时,只需针对类型的可能值发出一些并行查询。
最终决定需要考虑您的目标延迟,磁盘使用情况(使用不同主键的重复表有时太贵)以及每个查询的频率。