代码之家  ›  专栏  ›  技术社区  ›  Don Branson marios

Cassandra/BigTable数据模型-建立索引的最佳方法是什么?

  •  2
  • Don Branson marios  · 技术社区  · 14 年前

    不过,我的问题是:我正在一个单独的专栏族中建立一个索引,映射电子邮件->支持登录的GUID。它是一个标准类型CF,其中列名是email,值是GUID。避免为每个映射加载整个SC是标准的,而不是超级的。支持“更改电子邮件”很简单,它只是一个列删除/添加。但另一种方法似乎是将索引存储为行而不是列,其中行键是email,列保存GUID。删除/添加这些行不会很麻烦,因为只有列(GUID)需要管理。

    似乎这两种方法都管用。每种方法的优缺点是什么?有最佳实践吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Niels van der Rest    14 年前

    由于我对Cassandra或类似的数据库没有实际操作经验,您需要对我的答案持保留态度:)

    如果您将每个映射存储为一列,使用电子邮件地址作为列名,这意味着一行包含大量的列。根据维基百科 [ 1 :

    在单个行键下的每个操作对于每个副本都是原子的,无论读取或写入多少列。

    如果所有映射都存储在一行中,这可能会导致显著的锁定开销。

    [ 2 ] :