MySQL VARCHAR 最大大小是多少?
5.0.3之前的MySQL版本能够存储255个字符,但从5.0.3版本开始,它能够存储65,535个字符。
MySQL官方文档说明-
MySQL5.0.3及更高版本中VARCHAR的有效最大长度受最大行大小(65,535字节,在所有列之间共享)和使用的字符集的约束。例如,utf8字符可能需要每个字符最多三个字节,因此可以将使用utf8字符集的VARCHAR列声明为最多21,844个字符。
请记住,最大行大小的限制是65,535bytes.This表示包括所有列它不应超过65,535字节。
让我们看看如果违反会发生什么-
这是一个包含两列的表,“one”varchar的长度为32,765,“two”的长度为32766。
长度=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.