MySQL的varchar定义长度到底是字节还是字符

2024-11-25 12:16:33
推荐回答(4个)
回答1:

MySQL的varchar定义长度到底是字节
varchar存储规则:
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。

回答2:

字符。

varchar存储规则:

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 

5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 

Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。

回答3:

varchar 是字节
Nvarchar 是字符

回答4:

最新的都是5.x和8.x了,声明时指的都是最多存多少个字符;但底层存储要变为字节,所以最大长度是65535字节。

参考资料:

MySQL字段长度、取值范围、存储开销