代码之家  ›  专栏  ›  技术社区  ›  tpoker

Cassandra:黑白文本(VARCHAR)和ASCII的差异

  •  9
  • tpoker  · 技术社区  · 7 年前

    我知道text和varchar是别名,用于存储UTF-8字符串。

    尺寸有差异吗?当我存储大字符串(约500KB)时,是否首选这两个选项?

    1 回复  |  直到 7 年前
        1
  •  12
  •   Community kfsone    4 年前

    关于 this anwer

    如果数据是一段文本,例如Java中的字符串,在运行时以UTF-16编码,但在Cassandra中以文本类型序列化时,则使用UTF-8。UTF-16通常每个字符使用2个字节,有时使用4个字节,但UTF-8节省空间,根据字符的不同,可以是1、2、3或4个字节长。

    这意味着需要CPU工作来序列化此类数据,以达到编码/解码目的。还取决于文本,例如158786464563,数据将以12个字节存储。这意味着使用了更多的空间和更多的IO。


    尺寸有差异吗?

    当我存储大字符串(约500KB)时,是否首选这两个选项?

    因为ascii比UTF-8更节省空间,UTF-8比UTF-16更节省空间。同样,所有这些都取决于您如何序列化/编码/解码这些数据。更多信息,请查看此“ what-is-the-advantage-of-choosing-ascii-encoding-over-utf-8