记录长度
MySQL 中规定:任何一条记录最长不超过 65535 个字节,这意味着varchar
永远达不到理论最大值。
那么,varchar
实际存储长度能达到多大呢?这由编码字符集决定。
下面,以varchar
在UTF-8
和GBK
的情况为例,执行如下 SQL 语句,进行演示:
-- 求出 varchar 在 utf8 和 gbk 字符集下的实际最大值
create table my_utf8(
name varchar(65535)
)charset utf8;
create table my_gbk(
name varchar(65535)
)charset gbk;
观察上面的结果,发现咱们定义的字段name
的长度超过限制啦,并且提示了其在utf8
和gbk
字符集下各自的最大值。那么,咱们修改 SQL 语句如下,并再次执行:
-- 求出 varchar 在 utf8 和 gbk 字符集下的实际最大值
create table my_utf8(
name varchar(21845)
)charset utf8;
create table my_gbk(
name varchar(32767)
)charset gbk;