gpt4 book ai didi

cassandra - 查询 Cassandra 的最快方法?主键还是分区键?

转载 作者:行者123 更新时间:2023-12-04 10:25:48 29 4
gpt4 key购买 nike

查询 Cassandra 的最快方法是什么?
我有一个表,其中主键由 3 列组成。我按其中一列查询,速度非常慢(我通过 Spark 查询)。全部 3 的查询会更快吗?

enter image description here
我还有一个由两列组成的分区键。不幸的是,我用来获取记录的列不是分区键中的列之一。会不会因此变慢?

任何见解都是有帮助的。

最佳答案

Unfortunately, the column I am using to fetch records for is not one of those in partition key. Could it be slow due to that?



是的,这可能是事情进展缓慢的原因。 公平地说,Spark 旨在查询分布式数据存储。它不是为了快速而设计的。

所以我假设您的 PRIMARY KEY 定义如下所示:
PRIMARY KEY((A,B),C)

通过 C 查询的原因慢,是因为Cassandra(Spark)无法根据 C判断集群中哪个节点负责数据.因此,每个节点都需要检查 C 的值。满足您的查询。

Would querying by all 3 be faster?



是的,所有三个查询可能会更快。 这是因为分区键由 A 组成和 B .使用基于分区键的查询,在这种情况下,键值 AB散列在一起。该哈希与每个节点负责的 token 范围相匹配。通过这种方式,可以轻松确定包含所需数据的目标节点,而无需检查每个节点的匹配值。

If I were to query by using just 1 column from primary key (Let's say A), that would also be fast right?



不,不会。鉴于 (A,B) 的分区键定义,包含数据的节点无法通过 A确定独自的。事实上,由于结果集可能会更大,通过 A 查询可能比通过 C 查询要慢.

关于cassandra - 查询 Cassandra 的最快方法?主键还是分区键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60636086/

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