【发布时间】:2014-05-30 16:23:12
【问题描述】:
在 Cassandra 中使用电子邮件作为主键会是不好的做法吗?这是否会导致复制出现问题(因为第一个主键用于复制 - 分区键)?
根据文档,使用高基数“键”作为索引不是一个好主意。它说应该为针对高基数列的查询创建一个动态列族(表)。
如果我在数据库中跟踪的主要内容是使用 EMAIL(到应用程序)登录的 USER 使用其他任何东西,但 EMAIL作为主键..
使用 EMAIL 作为行键是否有效?是否有理由为此使用 UUID?
我(也许是无知地)预见到的问题是,使用 UUID 作为行键,然后将电子邮件添加为另一个主键会失去唯一性(即电子邮件地址的唯一性)。然后可以使用同一个电子邮件创建多个帐户(无需额外检查以确保该电子邮件未被使用——这需要索引还是动态表?)
这就引出了第二个问题。究竟什么是动态表?我没有看到这个高基数键在动态表中使用的位置。现在它是行键吗(为什么不让它作为开始的行键..)?
对行键的搜索是否比创建的索引具有更高的性能?
有人对此有任何见解吗?我真的很感激!
如果动态列族只是意味着列是“动态”添加的,那么我看不出这对高基数列在索引方面有何帮助。
【问题讨论】:
标签: database-design cassandra database-performance cassandra-2.0 nosql