Cassandra uuid或来自Java的uuid文本

时间:2015-09-03 01:03:53

标签: cassandra cassandra-2.0 datastax spring-data-cassandra

我在考虑,如果我创建一个文本列,而不是使用uuid列创建Cassandra表,最后我将在其中插入Java.util.uuid.random字符串。因此,如果我使用文本代替Cassandra单向

,那么性能差异会有什么不同

2 个答案:

答案 0 :(得分:8)

将UUID存储为文本字段可能会占用更多存储空间。 UUID使用16个字节进行编码,但作为字符串,它将使用更多。

除了使用更多的存储空间之外,由于您正在读取和写入更多数据,它可能会稍微降低操作速度,如果它是分区键的一部分,则会有一些额外的开销来计算令牌哈希值。长字符串与UUID。

答案 1 :(得分:0)

" UUID(通用唯一ID)比较器类型用于避免列名冲突。"

从Cassandra 2.0和2.1中的UUID文档: http://docs.datastax.com/en/cql/3.1/cql/cql_reference/uuid_type_r.html

如果您选择使用文本字段并插入字符串,则应由应用程序代码确保其正确的UUID。但是,如果使用数据库字段类型的UUID,则数据库将确保正确的UUID。

请在相关帖子How to auto generate uuid in cassandra CQL 3 command line中查看此示例:

" INSERT INTO用户(uid,name)VALUES(uuid(),'我的名字');"