如果是,如果我想拥有一个独特的TEXT字段,数据模型会是什么样子?
答案 0 :(得分:8)
没有。无论使用何种数据类型,Cassandra都会将所有数据存储在磁盘上(包括主键值)作为十六进制字节数组。在性能方面,主键的数据类型确实无关紧要。
唯一重要的情况是令牌/节点分发。这是因为作为文本的"12345"
生成的令牌与为12345
生成的令牌不同:
aploetz@cqlsh:stackoverflow> CREATE TABLE textaskey (key text PRIMARY KEY, value text);
aploetz@cqlsh:stackoverflow> CREATE TABLE longaskey (key bigint PRIMARY KEY, value text);
aploetz@cqlsh:stackoverflow> INSERT INTO textaskey (key, value) VALUES ('12345','12345');
aploetz@cqlsh:stackoverflow> INSERT INTO longaskey (key, value) VALUES (12345,'12345');
aploetz@cqlsh:stackoverflow> SELECT token(key),value FROM textaskey ;
token(key) | value
---------------------+-------
2375712675693977547 | 12345
(1 rows)
aploetz@cqlsh:stackoverflow> SELECT token(key),value FROM longaskey;
token(key) | value
---------------------+-------
3741197147323682197 | 12345
(1 rows)
但即使在这个例子中,一个人的表现也不应该比另一个更快/更不同。