我想知道MySQL VARCHAR类型的最大大小是什么。

我读到最大大小受行大小限制,约为65k。我尝试将字段设置为varchar(20000),但它说这太大了。

我可以把它设置为varchar(10000)我能设置的最大值是多少?


当前回答

在我的情况下,我尝试了20'000根据@Firze答案(UTF8限制)和phpMyAdmin响应的最大大小;答案是减少或选择BLOB。

所以,我认为,最后,最好是根据你拥有的MySQL版本和使用的引擎来测试自己。因为MySQL / phpMyAdmin有安全措施。

其他回答

你也可以使用MEDIUMBLOB/LONGBLOB或MEDIUMTEXT/LONGTEXT

在MySQL中,一个BLOB类型最多可以存储65,534字节,如果你试图存储超过这个数量的数据,MySQL将截断数据。MEDIUMBLOB最多可以存储16,777,213个字节,LONGBLOB最多可以存储4,294,967,292个字节。

您可以使用TEXT类型,不限制为64KB。

varchar的最大长度取决于MySQL中的最大行大小, 64KB(不包括blob): 但是,请注意,如果您使用 多字节字符集: VARCHAR(21844)字符集utf8

在我的情况下,我尝试了20'000根据@Firze答案(UTF8限制)和phpMyAdmin响应的最大大小;答案是减少或选择BLOB。

所以,我认为,最后,最好是根据你拥有的MySQL版本和使用的引擎来测试自己。因为MySQL / phpMyAdmin有安全措施。

在Mysql 5.0.3版本之前,Varchar数据类型可以存储255个字符,但从5.0.3版本开始,它可以存储65,535个字符。

但是它的最大行大小限制为65,535字节。这意味着包括所有列,它不能超过65,535字节。

在你的情况下,可能当你试图设置超过10000时,它超过了65,535,mysql将给出错误。

欲了解更多信息:https://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html

博客示例:http://sforsuresh.in/mysql_varchar_max_length/