Cassandra:text vs varchar

有谁知道Cassandra中两个CQL数据typestextvarchar的区别吗? Cassandra文档将这两种types描述为“UTF-8编码的string”,仅此而已。

text只是varchar的别名!

文档:

  • 开始使用cql3 – Datastax
  • CQL命令 – Datastax
  • 关于CQL数据types的文档 – Datastax
  • CQL3文档 – Apache

编辑
这里是C * 1.2文档的链接。 文本vs varchar信息仍然是相同的,但是这个文档包含一些额外的数据types。

也许你的意思是CQL存储types,如果不是,不理会我的答案。

在CQL中一直有一种趋势,试图与cassandra的内部进行距离。 无论是好事还是坏事,都有待解释。 然而,与CQL最新版本相关的是,开发人员一直在试图提出一些对cassandra内部没有深入了解的人们更熟悉的语法。

如果你想看看这个问题,你将会得到一个很好的例子: 在Cassandra中使用Datastax API(使用新的Binary协议)创build列族或者表格,

在最近的CQL版本中,一些与cassandra不同的别名,但是DBA非常熟悉的别名已经开始出现。 例如,cassandra的ColumnFamily的本机已经被Table化了,而文本只是varchar的别名,反之亦然。 如果这是一件好事,这又是一个意见问题。

所以,总而言之,可以交替使用varchar和text。

当我和Cassandra开始的时候,这也使我感到害怕。

text和varchar都是UTF8编码的string,是相互之间的同义词,也就是说它们是完全一样的东西。

作为一个附加说明,如果一个来自像MS SQL这样的关系型世界,那么也许还会犹豫是否使用这些types(尤其是TEXT)作为实体的主要字段。 TEXT通常与文本内容的大块相关联,而不是将主要关键字尖叫到第三范式关系型心智。 但是由于所有的Cassandratypes基本上都是以hex字节数组的forms存储在磁盘上,所以在使用它们作为主键时没有真正的重要性能。