2013-02-04 50 views
1

如果我在STATUS列上有二级索引,我想获得STATUS ='processed'的所有密钥(在一定范围内)。我怎么能不读任何列?我只需要键列表,因此只需要访问索引(每个节点一个磁盘搜索而不是2个)。获取列等于某个值的关键字列表?

回答

0

二级索引不能直接被用户访问,因此您需要针对您编制索引的CF运行索引查询并获取密钥。如果您希望只保证一次磁盘寻道,您需要创建自己的索引(即包含所有“已处理”密钥的CF),以便您可以直接查询它。

+0

这是一个无赖。创建我自己的索引是不一样的,因为它不是分布式的,它创建了热点。 你知道吗,卡桑德拉有关于这个问题吗?它可以加速很多事情(这不仅仅是一次额外的磁盘寻道,因为密钥遍布整个地方并且有许多不同的状态,所以可以有更多的磁盘寻道)。 – user1944408

+0

你自己的索引将被分发,没有任何理由会产生热点。我认为你使用的是RandomPartitioner(如果不是你应该的话),在这种情况下,你创建的任何CF将会均匀分布。 –

+0

我不知道JIRA,因为我认为这是设计。 –

相关问题