多个Cassandra二级索引如何工作?

时间:2014-08-05 02:33:40

标签: cassandra sql-execution-plan secondary-indexes

由于Cassandra没有执行计划,我们想知道多个二级指数如何运作?即,如果查询是按不同的列顺序过滤的,那么哪个二级索引会得到偏好以及为什么?

我们确实知道它们是一种不好的做法,应该用于低基数集或许多重复,但我们试图利用现有的传统cassandra表,并且不能同时使用cassandra二级索引和SOLR索引,所以不要&# 39;这里有一个选择。

这里讨论的不多:http://www.datastax.com/docs/1.1/ddl/indexes

1 个答案:

答案 0 :(得分:0)

辅助索引就像您自己创建的查找表,cassandra管理。节点存储其包含的行的索引信息。对节点上的索引的更新以及该节点上的数据更新是原子的。如果查询中使用了多个索引,则实际只会使用一个索引。我希望有人可以纠正我,但据我所知,谓语中的第一个过滤器是使用过的。

不要将索引视为全局查找(在一般情况下)。这会导致恼人的性能问题等。将索引视为一种快速访问分区内某些列的方法,在该分区中,您希望对其进行相等过滤的列不是群集密钥(或者您希望能够过滤第二个聚类键而不指定第一个聚类键。如果你点击了分区,那么索引性能通常都不错。关于低基数的信息是正确的 - 基数越高,你的指数就越差。

这是索引的简短常见问题解答: http://wiki.apache.org/cassandra/SecondaryIndexes