MySQL VARCHAR 的最大大小是多少?
mysqlmysqli database
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 字节。
让我们看看如果违反此规则会发生什么 −
这是一个有两列的表,"一"varchar 长度为 32,765,"二"varchar 长度为 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 - 行大小太大。所用表类型的最大行大小(不包括 BLOB)为 65535。您必须将一些列更改为 TEXT 或 BLOB
以上本身表明 −
最大行大小为 65,535 字节。如果超出,将出现错误。