我正在考虑使用String作为主键,并且String可能会很长(最多300-400个字符)。
我想了解是否对主键的保存方式进行了任何优化。它是否像其他任何数据一样保存在每一行中,还是以某种方式进行了优化? 组合键的答案是否不同?
是否有关于主键长度的最佳实践建议?我发现的唯一是它限制为65KB。
答案 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进行了优化,可以防止它一遍又一遍地保持相同的主键。