gpt4 book ai didi

search - Cassandra中的二级索引和反向索引有什么区别?

转载 作者:行者123 更新时间:2023-12-04 13:40:09 27 4
gpt4 key购买 nike

当我读到这两个信息时,我以为他们都在解释相同的方法,我在Google上搜索但一无所获。实现上有区别吗? Cassandra是否要执行二级索引本身,但是倒排索引必须由我自己实现?

顺便说一下,哪个搜索更快?

最佳答案

主要区别在于,Cassandra中的二级索引的分布方式与手动反向索引的分布方式不同。使用内置的二级索引,每个节点都可以对本地存储的数据进行索引(使用LocalPartitioner)。使用手动索引,索引的分配与存储值的节点无关。

这意味着,对于内置索引,每个查询必须转到每个节点,而如果您手动进行了反向索引编制,则只需转到一个节点(加上副本)即可查询正在查找的值。将索引存储在本地的一个优点是可以用数据自动更新索引。 (尽管,从Cassandra 1.2开始,原子批处理可以用于此,尽管它们稍微慢一些。)

这就是为什么不建议对真正高基数的数据使用Cassandra索引的原因。如果要在每个节点上进行查找,但结果只有一两个,则效率低下,手动倒排索引会更好。如果您的查询返回许多结果,则无论如何您都需要在每个节点上进行查询,以便内置索引可以正常工作。

使用Cassandra的内置索引的另一个优点是索引是延迟更新的,因此您不需要每次更新都进行读取。 (请参阅CASSANDRA-2897。)对于具有高写入吞吐量的索引表,这可以显着提高速度。

关于search - Cassandra中的二级索引和反向索引有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248458/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com