php mysql行最大长度限制吗_MySQL VARCHAR字段最大长度到底是多少

varchar(n),n表示什么?

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

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

n最大可以是多少

MySQL行长度

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

超过以上限制则会报错:

[sql] view plain copy

drop table if EXISTS test1111;

create table test1111(

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

varchar(n)占用几个字节

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

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

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

varchar最大长度可以是多少

根据字符集,字符类型若为gbk,每个字符占用2个字节,最大长度不能超过32766,字符类型若为utf8,每个字符最多占用3个字节,最大长度不能超过21845,若超过这个限制,则会自动将varchar类型转为mediumtext或longtext,例如:

[sql] view plain copy

drop table if EXISTS test1111;

create table test1111(

id char(255) null,

content varchar(63000) null

);

desc test1111;

结果:

CREATE TABLE `test1111` (

`id` char(255) DEFAULT NULL,

`content` mediumtext

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值