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 字节。如果超出,将出现错误。

相关文章