首先要确定mysql版本
- 4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节)
- 5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个
其它
- 1.mysql记录行的长度是65535字节;
- 2.utf8编码占3字节,gbk编码占2字节,latin1编码占1字节;
- 3.对于变长字段如varchar,mysql会用额外的字节来存储字符长度,255个字符以内用1个字节存,多于255个字符用2字节存;
- 4.decimal类型的字段长度不固定,整数与小数部分所占字节数总和为总字节数,可以各自按表推算。
在MySQL中,VARCHAR(50)的含义在4.0版本及以下和5.0版本以上有所不同,主要受UTF8编码影响。4.0版本下,VARCHAR(50)可存储16个汉字;5.0及以上版本则按字符数计算,不受字符类型限制。此外,MySQL行长度限制为65535字节,不同编码如UTF8、GBK和latin1占用字节数不同,且VARCHAR会额外存储字符长度信息。
2236

被折叠的 条评论
为什么被折叠?



