fer*_*teh 6 indexing search cassandra inverted-index
当我读到这两个时,我认为他们两个都在解释相同的方法,我用谷歌搜索但没有发现任何东西.实施方面有区别吗?Cassandra本身就是二级索引,但倒排索引必须由我自己实现?
顺便说一句,哪个搜索速度更快?
Ric*_*ard 12
主要区别在于Cassandra中的二级索引的分布方式与手动倒排索引的分布方式不同.使用内置的二级索引,每个节点都会对其本地存储的数据(使用LocalPartitioner)进行索引.使用手动索引,索引的分布独立于存储值的节点.
这意味着,对于内置索引,每个查询必须转到每个节点,而如果您手动反转索引,则只需转到一个节点(加上副本)来查询您正在查找的值.使索引存储在本地的一个优点是索引可以用数据原子地更新.(虽然,从Cassandra 1.2开始,原子批次可以用来代替它,尽管它们有点慢.)
这就是为什么不推荐使用Cassandra索引来获得真正高基数的数据.如果您在每个节点上进行查找但只有一个或两个结果,则效率低,手动反向索引会更好.如果您的查找返回了许多结果,那么您将需要在每个节点上查找,以便内置索引运行良好.
使用Cassandra内置索引的另一个优点是索引可以懒得更新,因此您无需对每次更新进行读取.(参见CASSANDRA-2897.)对于具有高写入吞吐量的索引表,这可以显着提高速度.
归档时间: |
|
查看次数: |
3398 次 |
最近记录: |