4

我在想,如果我创建一个文本列,而不是创建带有 uuid 列的 Cassandra 表,最后我将在其中插入 Java.util.uuid.random 字符串。那么,如果我使用文本代替 Cassandra 单向,性能会有什么不同

4

2 回答 2

11

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

除了使用更多存储空间之外,由于您正在读取和写入更多数据,它可能会稍微减慢操作速度,并且如果它是分区键的一部分,那么从长字符串计算令牌哈希会产生一些额外的开销,而不是UUID。

于 2015-09-03T02:48:30.653 回答
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。

请参阅相关文章如何在 cassandra CQL 3 命令行中自动生成 uuid 中的此示例:

“插入用户(uid,名称)值(uuid(),'我的名字');”

于 2015-09-03T01:37:03.770 回答