答案 0 :(得分:2)
由于我没有Cassandra或类似数据库的实际操作经验,所以你需要我的答案:*)
如果您将每个映射存储为列,使用电子邮件地址作为列名称,则这意味着包含大量列的单行。根据维基百科 [1] :
无论要读取或写入多少列,单个行键下的每个操作都是每个副本的原子操作。
如果所有映射都存储在一行中,这可能会导致显着的锁定开销。
Cassandra Wiki声明 [2] :
行键是决定存储机器数据的因素。
这使我相信基于行键而不是列名进行查找更有效。根据这些信息,我建议使用电子邮件地址作为行密钥,并将GUID存储在列中。
答案 1 :(得分:2)
尼尔斯是对的;每个用户一行是手动执行此操作的正确方法。
我有资格证明这一点,因为在0.7中,您可以在行中包含一个包含其余UEDID用户数据的电子邮件列,并要求Cassandra将其编入索引:http://www.riptano.com/blog/whats-new-cassandra-07-secondary-indexes