用于常量字符串的MySQL最小CHAR存储

时间:2014-04-06 21:07:33

标签: mysql

我有一个非常简单的表,它只有两个值:idtypetype中最长的字符串是11个字符("理事会")。

我应该在CHAR(11)命令中使用CHAR(12)还是CREATE? MySQL实际上是为CHAR(11)存储了12个字节,其中第12个字节是NULL字符还是与存储无关?

编辑:正如Joni所指出的,这不使用11或12个字节,它使用33或36个字节,因为我存储为utf-8。但是,我的问题是我是否应该在CHAR(x)

中使用11或12

1 个答案:

答案 0 :(得分:2)

CHAR(M)所需的存储空间是

  

M×w字节,0 <= M <= 255,其中w是字符集中最大长度字符所需的字节数。

(资料来源:https://dev.mysql.com/doc/refman/5.6/en/storage-requirements.html

也就是说,如果使用ascii或其他单字节编码,CHAR(M)将以M字节存储。如果使用utf8,它将以3 * M字节存储。