在这种情况下MySQL的大小?

时间:2014-01-16 14:22:30

标签: mysql

如果我在MySQL中创建一个utf-8列,并且所有字符都是ascii减去1,那么我可以存储多少个字符?

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

21844

将是utf8中varchar的最大值。

它的实际字符不是字节。

from MySQL doc

  

例如,utf8字符每个最多需要三个字节   字符,所以使用utf8字符集的VARCHAR列可以   声明最多21,844个字符。见E.7.4节,   “对表列数和行大小的限制”。

     

MySQL将VARCHAR值存储为1字节或2字节长度的前缀加上   数据。长度前缀表示值中的字节数。一个   如果值不超过255,则VARCHAR列使用一个长度字节   如果值可能需要超过255个字节,则为两个长度字节。

from Wiki

  

前128个字符(US-ASCII)需要一个字节。接下来的1,920   字符需要两个字节来编码。这涵盖了其余部分   几乎所有的拉丁字母,还有希腊语,西里尔语,科普特语,   亚美尼亚语,希伯来语,阿拉伯语,叙利亚语和Tāna字母表,以及   结合变音符号。字符中需要三个字节   基本多语言平面的其余部分(几乎包含所有   常用字符[11])。字符中需要四个字节   Unicode的其他平面,包括不太常见的CJK字符   和各种历史剧本和数学符号。

相关问题