创建二级索引与在Cassandra中手动创建索引CF之间的区别

时间:2016-07-21 07:12:09

标签: cassandra cassandra-2.0 cassandra-2.1

任何人都可以告诉我创建二级索引与在Cassandra中手动创建索引CF之间的差异

1 个答案:

答案 0 :(得分:0)

Cassandra中的二级索引在每个节点上存储和维护。因此,当您通过二级索引进行筛选时,Cassandra将需要在每个节点上执行搜索,然后返回组合结果。因此,通过二级索引进行过滤可能比通过分区键过滤要慢得多(根据我的测试,它可能慢10倍,具体取决于您的数据和拓扑)。

维护自己的索引表对于大多数用例来说效率更高,但您需要自己处理更新索引表。此外,您需要执行两个查询来检索数据:一个查询索引表,另一个查询实际数据。

另一个解决方案是完全复制数据,并创建两个具有相同结构但不同键的表。

如果性能是您关键的问题,那么请转到索引表或重复的表。如果您需要简单并且可以承受一些性能损失,请使用二级索引,但我建议事先进行一些性能测试。