查询的原因 C 速度慢,是因为cassandra(spark)无法确定集群中哪个节点负责基于 C . 因此,需要检查每个节点的 C 满足你的要求。 所有3个人的查询速度会更快吗? 是的,三者的查询速度可能更快。这是因为分区键由 A 以及 B . 对于基于分区键的查询,在本例中 A 以及 B 都是散列在一起的。该散列与每个节点负责的令牌范围相匹配。这样,可以容易地确定包含期望数据的目标节点,并且不需要检查每个节点的匹配值。 如果我只使用主键的1列(比如a)进行查询,那也会很快,对吧? 不,不会的。给定的分区键定义 (A,B) ,无法确定包含数据的节点 A 一个人。事实上,由于结果集可能会更大,通过 A 可能比通过 C .
1条答案
按热度按时间zbsbpyhn1#
不幸的是,我用来获取记录的列不是分区键中的列。会不会因此而变慢?
是的,这可能就是事情进展缓慢的原因。尽管公平地说,spark是用来查询分布式数据存储的。它不是为了快而设计的。
所以我假设主键定义如下:
查询的原因
C
速度慢,是因为cassandra(spark)无法确定集群中哪个节点负责基于C
. 因此,需要检查每个节点的C
满足你的要求。所有3个人的查询速度会更快吗?
是的,三者的查询速度可能更快。这是因为分区键由
A
以及B
. 对于基于分区键的查询,在本例中A
以及B
都是散列在一起的。该散列与每个节点负责的令牌范围相匹配。这样,可以容易地确定包含期望数据的目标节点,并且不需要检查每个节点的匹配值。如果我只使用主键的1列(比如a)进行查询,那也会很快,对吧?
不,不会的。给定的分区键定义
(A,B)
,无法确定包含数据的节点A
一个人。事实上,由于结果集可能会更大,通过A
可能比通过C
.