myql字节和字符

Posted cheng6018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了myql字节和字符相关的知识,希望对你有一定的参考价值。

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

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

varchar(20)在mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则:

1) 存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
2) 编码长度限制
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。

以上是关于myql字节和字符的主要内容,如果未能解决你的问题,请参考以下文章

java中一个字符是几个字节?字符和字节是同等的吗?

字节数,字符串长度,字符个数的区别?

位、字符、字节、有啥区别

双字节距离显示一半的值

C 如何区分字节长字符和 2 字节长字符?

怎么将字符串进行网络字节序转换 示例