为什么Cassandra键通常被定义为UUID。看起来密钥是在客户端生成的,所以为什么不只是存储为字符串?专门存储为UUID有什么好处?
答案 0 :(得分:4)
有人可能拥有Cassandra的任何密钥,无论如何密钥都是bytearray
。如果客户希望拥有像“foobar”这样的密钥或任意长度的任何其他字符串,那么它就没有任何问题。在传输到Cassandra服务器之前,Cassandra客户端将其转换为字节数组。从技术上讲,它将在服务器端存储为“foobar”。
在决定关键格式时还需要考虑其他事项:
get
变为slice
并过度忽略delete
,通常人们会发现UUID是一个很好的妥协答案 1 :(得分:3)
Cassandra Keys可以定义为任何类型(或其组合),因此您不限于UUID。
但至于为什么要在字符串上使用UUID:
UUID是128位。字符串是可变长度,UUID的字符串十六进制表示将需要32个字符。如果您使用的是16位unicode字符,则表示每个密钥需要512位或4倍的空间。
答案 2 :(得分:1)
当存在大量行时,这会节省磁盘空间。
如果行数很多,则通过减少从磁盘获取的数据量来提高性能。