Cassandra二级索引如何在内部工作?文档指出这是某种哈希索引:
鉴于我在带有username="foobar"
的CF User
中具有列RandomOrderingPartitioner
(列用户名将为scondary索引)
索引(通过对列进行哈希处理,然后使用randompartitioner logik确定节点)?
有没有我可以用来判断的具体数字),我不应该使用二级索引(而是使用
索引的单独CF)?
还是换句话说,如何计算基数并做出正确的决定?
我试图理解这一点。
最佳答案
二级索引基本上只是另一个列族。用户无法直接访问它们,但是您可以通过JMX bean查看统计信息:
org.apache.cassandra.db.IndexedColumnFamilies
您可以引用此处的统计信息来评估索引的有效性,就像处理普通列族一样。
有关更多详细信息,请参阅以下以前的文章:
How are Cassandra's 0.7 Secondary Indexes stored?
How scalable are automatic secondary indexes in Cassandra 0.7?
并且由于您具有hector标记,因此这里是IndexedSlicesQuery测试用例的链接:
https://github.com/rantav/hector/blob/master/core/src/test/java/me/prettyprint/cassandra/model/IndexedSlicesQueryTest.java
关于Cassandra和Secondary-Indexes,它们在内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418181/