Cassandra中长主键的优化

时间:2019-12-11 12:11:11

标签: cassandra cassandra-3.0

我正在考虑使用String作为主键,并且String可能会很长(最多300-400个字符)。

我想了解是否对主键的保存方式进行了任何优化。它是否像其他任何数据一样保存在每一行中,还是以某种方式进行了优化? 组合键的答案是否不同?

是否有关于主键长度的最佳实践建议?我发现的唯一是它限制为65KB。

1 个答案:

答案 0 :(得分:0)

要了解是否有优化,我在Cassandra(使用Cassandra3.0泊坞窗)上创建了两个表。

两个表都具有70,000个条目,其中uuid为主键。

表A具有70,000个不同的主键值。

表B只有7个不同的主键,每个键有10,000个条目。

使用nodetool在两个表上执行了刷新。两个表都有一个SSTable。

结果:

根据tag,表A的tag字段几乎是表B的1000倍。

nodetool cfstats的表A大约是表B的3000倍。

它支持我找到的here信息(请参见Jeff Carpenter指定的公式)。

我的结论是,Cassandra进行了优化,可以防止它一遍又一遍地保持相同的主键。