RandomPartitioner下Cassandra中的二级索引

时间:2011-04-15 20:07:37

标签: nosql cassandra cassandra-0.7

我正在研究使用Aquiles在Cassandra中使用二级索引功能的可能性。我知道对于主索引(key),我必须使用OrderPreservingPartitioner才能进行查询。起初,我认为对于二级索引,没有这样的限制,但我注意到start键是GetIndexedSlicesCommand的一部分。这是否意味着在RandomPartitioner下,此命令无法使用?

1 个答案:

答案 0 :(得分:2)

您不需要OrderPreservingPartitioner按行键进行查询,只有在您希望按键获取有意义的行范围时才需要它,例如“所有行的键数介于5和9之间”。 (请注意,可以而且几乎总是use RandomPartitioner instead。)

get_indexed_slices的开始键的行为与get_range_slices的行为相同。也就是说,在使用RandomPartitioner时检查两个键之间的行范围并不是很有意义,但 对于遍历大量行非常有用。关于这个主题甚至还有一个FAQ entry。基本上,如果你要通过调用get_indexed_slices获得大量结果,你不想一次性获取所有结果,你想获得一个块(10,100或1000,取决于大小)一次,然后将start_key设置为您在上一个块中看到的最后一个键,以获取下一个块。