2011-05-24 157 views

回答

1

http://en.wikipedia.org/wiki/Apache_Cassandra权利要求(显然不正确!)的是:

在一个表中的行密钥是一个字符串 没有大小限制,虽然 通常为16到长

参见36个字节:

http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/value-size-is-there-a-suggested-limit-td4959690.html其中暗示有一些限制。

显然,如果需要通过Thrift RPC接口发送网络性能的影响,非常大的密钥可能会对网络性能产生影响 - 而且这些密钥会花费存储空间。我建议你尝试一个快速的基准,看看它对你的数据有什么影响。

解决此问题的一种方法可能是预先哈希您的密钥,并将哈希值用作密钥,但这不适合所有用例。

14

键(和列名称)必须小于64K字节。

路由是O(N)的密钥大小,查询和更新是O(N log N)。在实践中,这些因素通常被其他开销所掩盖,但一些拥有非常大的“自然”键的用户使用散列来减少大小。

+0

这可以添加到http://wiki.apache.org/cassandra/Cas​​sandraLimitations或其他一些明智的地方吗? - 我还没有看到这个文件在任何地方...... – DNA 2011-05-25 15:51:02

+1

这个wiki是可公开编辑的。只需点击登录创建一个帐户。 – jbellis 2011-05-26 15:42:40

+0

感谢 - 为http://wiki.apache.org/cassandra/FAQ#max_key_size和http://wiki.apache.org/cassandra/Cas​​sandraLimitations添加了信息 – DNA 2011-05-26 18:36:44