有人知道Cassandra中两种CQL数据类型text
和varchar
之间的区别吗? Cassandra文档将这两种类型描述为“UTF-8编码字符串”,仅此而已。
答案 0 :(得分:66)
text
只是varchar
的别名!
文档:
修改强>
这是C* 1.2 docs的链接。 text vs varchar info仍然相同,但是本文档包含一些额外的数据类型。
答案 1 :(得分:9)
可能你的意思是CQL存储类型,如果没有,请忽略我的答案。
在CQL中,有一种持续的趋势,试图与cassandra的内部距离。无论是好事还是坏事,都可以解释。然而,相关的是,最新版本的CQL开发人员一直试图提出一种语法,这些语法对于那些没有深入cassandra内部的人来说更为熟悉。
如果你要看一下这个问题,你会得到一个很好的例子: Creating column family or table in Cassandra while working Datastax API(which uses new Binary protocol)
在最近的CQL版本中,一些与cassandra不同的别名,但DBA已经开始出现。例如,cassandra ColumnFamily的本机已经使用Table别名,而text只是varchar的别名,反之亦然。同样,如果这是好事还是意见问题。
因此,总之,您可以互换使用varchar和文本。
答案 2 :(得分:3)
当我开始使用Cassandra时,这也让我感到高兴。
text和varchar都是UTF8编码的字符串,并且是彼此的同义词,即它们完全相同。
如果有人来自像MS SQL这样的关系世界,那么或许也会犹豫是否要将这些类型(尤其是TEXT)用作实体的主要字段。 TEXT通常与大量的文本内容相关联,这些内容不会将主键发送到第3个普通形式的关系思维。但由于所有Cassandra类型基本上都存储在磁盘上的十六进制字节数组中,因此在将它们用作主键时没有真正重要的性能。
答案 3 :(得分:1)
Cassandra CQL数据类型文本和 varchar 是彼此的同义词/别名。
答案 4 :(得分:0)
卡桑德拉也是一样。 text 和 varchar 都是 UTF8 编码的字符串,所以它们是完全一样的。