Cassandra uuid 或带有来自 Java 的 uuid 的文本

Cassandra uuid or text with uuid from Java

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

,性能会有什么不同?

"The UUID (universally unique id) comparator type is used to avoid collisions in column names."

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

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

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

"INSERT INTO users(uid, name) VALUES(uuid(), 'my name');"

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

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