Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indexing Cassandra 2.x:唯一值的二级索引_Indexing_Cassandra_Cassandra 2.0 - Fatal编程技术网

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、 为了给你一个更复杂的答案,你可能想分享关于你的特定用例的更多细节,例如读写负载、数据量或使用二级索引的查询。

谢谢,这就解释了!我还没有确切的使用预测,只是想大致了解一下。