varchar( n ):n 表示允许存入字段的字符数,不论是汉字还是英文字符。在utf8编码情况下,
一个汉字 = 3个字节
一个英文 = 1个字节
因此,存入字段的实际字节长度中英文是不同的。
MYSQL的varchar最多可以存储64K,及65535个字节(byte)。
变长类型的字段会用1-2个字节(byte)的长度来存储字符的长度。当字符(character)的长度小于255的时候用一个字节(byte),因为一个字节(byte)可以表示最大数值为255。字符(character)长度大于255的时候用两个字节(byte)
在 utf8 下 varchar 存储字符最大长度为 (65535-2)/ 3 = 21844
在 gbk 下 varchar 存储字符最大长度为 (65535-2) / 2 = 32766
(完)
参考资料: