我在考虑,如果我创建一个文本列,而不是使用uuid列创建Cassandra表,最后我将在其中插入Java.util.uuid.random字符串。因此,如果我使用文本代替Cassandra单向
,那么性能差异会有什么不同答案 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(),'我的名字');"