Cassandra 2.x:唯一值的二级索引

时间:2014-12-17 09:58:03

标签: indexing cassandra cassandra-2.0

假设我的用户拥有idemail字段,两者都是唯一的,我想通过它们进行查询。 id将成为主键的一部分,但问题是如何处理email

第一个选项是创建一个“手动索引”,类似于email_to_user表。那里email将是主键,因此查找应该非常快。但是,必须保持手动索引与主表保持同步的一些开销。

第二个选项是创建二级索引。但是,作为Cassandra's doc say,不应在高基数列上使用二级索引 - 具有唯一值的列肯定是高基数。但是,我还读到二级索引是作为隐藏表实现的 - 实际上两种方法之间是否存在差异? (除了手动创建或隐藏表格)。

对于二级索引,可能具有唯一值与具有高基数值的情况不同?或者也许2.x中的事情发生了变化(网络中关于此主题的大多数材料都是指0.x或1.x版本)?

1 个答案:

答案 0 :(得分:3)

您提到的文档还指出,只要该表上的查询量适中,在包含唯一数据的列上使用二级索引就可以了(关于性能)。

差异

简而言之:,除了手动创建和维护索引表之外,还有其他差异。

有关详细信息,请查看此question。虽然从2013年开始,我认为答案仍然有效。

另外,请访问FAQ on secondary indexes

P.S。为了给出更复杂的答案,您可能希望分享有关特定用例的更多详细信息,例如读取和写入负载,数据量或使用二级索引的查询。