当前位置:Gxlcms > 数据库问题 > Mysql中varchar和char区别

Mysql中varchar和char区别

时间:2021-07-01 10:21:17 帮助过:22人阅读

65532 个字符

GBK 一个字符占两个字节, 最多能存 32766 个字符

UTF8 一个字符占三个字节, 最多能存 21844 个字符

注意,char 和 varchar 后面的长度表示的是字符的个数,而不是字节数。

 

2. 计算例子

      • 若一个表只有一个varchar类型。其定义为
      • create table t4(c varchar(N)) charset=gbk; 则此处N的最大值为(65535-1-2)/2=32766个字符。
        • 减1的原因是实际行存储从第二个字节开始;
        • 减2的原因是varchar头部的两个字节表示长度;
        • 除2的原因是字符编码是gbk
      若一个表定义为

create table t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;则此处的最大值为(65535-1-2-4-30*3)/3=21812

          • 减1与减2原因与上述例子相同
          • 减4的原因是int类型的c占4个字节;
          • 减30*3的原因是char(30)占用90个字节,编码是UTF8。
          • 如果被varchar超过上述的b规则,则被强转为text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了。
          • 则此处N的最大值为(65535-1-2-4-30*3)/3=21812

            create table t4(c int, c2 char(30), c3 varchar(21812)) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

Mysql中varchar和char区别

标签:空格   大小   强制转换   gbk   tab   ati   font   bytes   sof   

人气教程排行