如果是,如果我想拥有一个独特的TEXT字段,数据模型会是什么样子?
解决方法
无论使用何种数据类型,Cassandra都会将磁盘上的所有数据(包括主键值)存储为十六进制字节数组.在性能方面,主键的数据类型确实无关紧要.
它唯一重要的情况是令牌/节点分配.这是因为生成的“12345”标记作为文本将不同于为12345生成的标记作为bigint:
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)
但即使在这个例子中,也不应该比另一个更快/更不同.