【发布时间】:2015-11-28 16:30:08
【问题描述】:
我在想,如果我创建一个文本列,而不是创建带有 uuid 列的 Cassandra 表,最后我将在其中插入 Java.util.uuid.random 字符串。那么,如果我使用文本代替 Cassandra 单向,性能会有什么不同
【问题讨论】:
标签: cassandra cassandra-2.0 datastax spring-data-cassandra
我在想,如果我创建一个文本列,而不是创建带有 uuid 列的 Cassandra 表,最后我将在其中插入 Java.util.uuid.random 字符串。那么,如果我使用文本代替 Cassandra 单向,性能会有什么不同
【问题讨论】:
标签: cassandra cassandra-2.0 datastax spring-data-cassandra
将 UUID 存储为文本字段可能会占用更多存储空间。一个 UUID 用 16 个字节编码,但作为一个字符串它会使用更多。
除了使用更多存储空间之外,它可能会降低操作速度,因为您正在读取和写入更多数据,并且如果它是分区键的一部分,则从长字符串与 UUID。
【讨论】:
“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 users(uid, name) VALUES(uuid(), 'my name');"
【讨论】: