【问题标题】:cassandra primary key designcassandra主键设计
【发布时间】:2015-02-01 19:04:39
【问题描述】:

我正在使用 datastax 企业 4.5。就任何性能而言,定义复合分区键是否比仅定义单个列分区键有任何缺点?如果复合分区的一列基数高,而复合分区的另一列基数低怎么办?

【问题讨论】:

    标签: cassandra datastax


    【解决方案1】:

    复合键用于增加分区的基数。例如,像PRIMARY KEY ((x,y)) 这样的键,具有 5 个 x 值和 10 个 y 值,最终将创建 50 个不同的分区。如果您需要更多地分发数据,这很有用,但如果您有一个具有足够高基数的变量,则这是不必要的。

    一个更现实的例子可能是创建PRIMARY KEY ((Gender, ZipCode), age, userid) 的复合键。如果您只使用 Gender 作为分区键,您最终将只有 2 个分区来存储您的数据!添加邮政编码允许总共 99999 个邮政编码或(zip+4 获得更多),同时仍然允许您按性别隔离数据。这对于按位置或类似的东西查找人口统计信息是理想的。

    基本上,经验法则是您希望使用大量分区来避免集群中的热点,而复合键允许通过组合字段的基数来轻松增加分区数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2021-10-09
      • 1970-01-01
      • 2015-10-28
      • 2016-04-08
      • 2017-06-15
      • 2020-01-13
      相关资源
      最近更新 更多