Cassandra:text vs varchar

时间:2013-07-08 15:16:31

标签: database cassandra

有人知道Cassandra中两种CQL数据类型textvarchar之间的区别吗? Cassandra文档将这两种类型描述为“UTF-8编码字符串”,仅此而已。

5 个答案:

答案 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 是彼此的同义词/别名。

  1. 与Varchar关联的数据类型为 blob (blob的最大理论大小为 2 GB
  2. 文本关联的
  3. 数据类型为Varchar(这意味着即使您使用了文本,但Cassandra内部将其视为 Varchar
  4. blob类型关联不会造成性能问题,因为Cassandra将数据存储为恒定的十六进制数。
  5. 由于Cassandra使用主键(分区键,聚类列)来查询右坐标,因此读取速度会更快,具体取决于我们如何设计表格。 enter image description here enter image description here

答案 4 :(得分:0)

卡桑德拉也是一样。 text 和 varchar 都是 UTF8 编码的字符串,所以它们是完全一样的。

CQL Data types