mysql版本5.0.3之前能够存储255个字符,但从版本5.0.3开始,能够存储65,535个字符。
mysql官方文档指出:
mysql 5.0.3及更高版本中varchar的有效最大长度取决于最大行大小(65,535字节,这是所有列共享的)和所使用的字符集。例如,utf8字符可能每个字符需要最多三个字节,因此使用utf8字符集的varchar列可以声明最大为21,844个字符。
请记住,最大行大小的限制是65,535字节。这意味着包括所有列在内,总大小不应超过65,535字节。
让我们看看如果违反这个限制会发生什么:
这是一个包含两列的表,“one”是长度为32,765的varchar,“two”是长度为32,766的varchar。
长度= 32765 + 2 + 32766 + 2 = 65535。
create table if not exists `mytable` (`one` varchar(32765) not null,`two` varchar(32766) not null) engine=myisam default charset=latin1;
现在让我们增加列长度 -
create table if not exists `mytable` (`one` varchar(32767) not null,`two` varchar(32770) not null) engine=myisam default charset=latin1;
上面给出了以下错误 -
#1118 - row size too large. the maximum row size for the used table type, not counting blobs, is 65535. you have to change some columns to text or blobs
以上内容本身表明 -
the maximum row size is 65,535 bytes. if it exceeds, an error will be visible.
以上就是mysql varchar 最大大小是多少?的详细内容。