玖叶教程网

前端编程开发入门

MySQL VARCHAR最大长度到底是多少?读完之后,大部分程序员收藏了

varchar(n),n表示什么?

MySQL5.0.3之前varchar(n)这里的n表示字节数

MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200),不管是英文还是中文都可以存放200个

n最大可以是多少

MySQL要求一个行定义长度不能超过65535个字节,不包括text、blob等大字段类型,varchar长度受此长度限制,和其他非大字段加起来不能超过65535个字节.

超过以上限制则会报错:

执行下面代码:

create table test( 
 id char(255) null, 
content varchar(21830) null 
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

结果:

[SQL]create table test( 
 id char(255) null, 
content varchar(21830) null 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
[Err] 1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

原因:21830*3+255=65745>65535

执行下面代码:

create table test( 
 id char(10) null, 
content varchar(21830) null 
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

结果:

[SQL]create table test( 
 id char(10) null, 
content varchar(21830) null 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
受影响的行: 0
时间: 0.098s

varchar(n)占用几个字节跟字符集有关系:

字符类型若为gbk,每个字符占用2个字节

字符类型若为utf8,每个字符最多占用3个字节

varchar最大长度可以是多少

根据字符集,字符类型若为gbk,每个字符占用2个字节,最大长度不能超过32766,字符类型若为utf8,每个字符最多占用3个字节,最大长度不能超过21845。

关注

感谢阅读,如果这篇文章帮助了您,欢迎 点赞收藏,关注转发 哟。您的帮助是我们前行的动力,我们会提供更多有价值的内容给大家... 谢谢!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言