Indexing Cassandra 2.x:唯一值的二级索引
假设我有一个用户具有Indexing Cassandra 2.x:唯一值的二级索引,indexing,cassandra,cassandra-2.0,Indexing,Cassandra,Cassandra 2.0,假设我有一个用户具有id和email字段,这两个字段都是唯一的,我想通过这两个字段进行查询id将是主键的一部分,但问题是如何处理电子邮件 第一个选项是创建一个“手动索引”,类似于email\u to\u user表。在那里,电子邮件将是主键,因此查找应该非常快。但是,手动索引必须与主表保持同步,这会带来一些开销 第二个选项是创建二级索引。但是,正如所述,二级索引不应该用于高基数列——具有唯一值的列当然是高基数列。然而,我也读到二级索引是作为隐藏表实现的——那么这两种方法之间实际上有什么区别吗?(
id
和email
字段,这两个字段都是唯一的,我想通过这两个字段进行查询id
将是主键的一部分,但问题是如何处理电子邮件
第一个选项是创建一个“手动索引”,类似于email\u to\u user
表。在那里,电子邮件
将是主键,因此查找应该非常快。但是,手动索引必须与主表保持同步,这会带来一些开销
第二个选项是创建二级索引。但是,正如所述,二级索引不应该用于高基数列——具有唯一值的列当然是高基数列。然而,我也读到二级索引是作为隐藏表实现的——那么这两种方法之间实际上有什么区别吗?(手动创建或隐藏表格除外)
第二个索引具有唯一的值可能与具有高基数值不同?或者,2.x版本的情况已经发生了变化(网络上关于这个主题的大多数资料都是0.x或1.x版本)?您提到的文档还声明,只要该表上的查询量适中,就可以在保存唯一数据的列上使用二级索引(关于性能) 分歧 简而言之,要回答您的问题:是,除了手动创建和维护索引表之外,还有其他不同之处 有关更多详细信息,请查看此。虽然是从2013年开始的,但我认为答案仍然有效 除此之外,请访问
p、 为了给你一个更复杂的答案,你可能想分享关于你的特定用例的更多细节,例如读写负载、数据量或使用二级索引的查询。谢谢,这就解释了!我还没有确切的使用预测,只是想大致了解一下。