关于varchar数据类型的困惑

时间:2010-10-07 08:52:22

标签: mysql database

我的服务器有我的SQL版本5.0.91-community,现在我必须存储大约500字符或多或少的长字符串,我想用文本数据类型,但后来有人告诉我它会降低性能,我想了解更多有关varchar及其限制的信息。

我曾经认为varchar只限于255个字符,但后来我在某个地方读到它能够存储的内容比新版本更多,即> = 5.0.3,因为我使用的是5.0.91你觉得我应该用吗?如果我像varchar(1000)一样使用它仍然有效吗?

谢谢。

5 个答案:

答案 0 :(得分:2)

来自The CHAR and VARCHAR Types

  

VARCHAR列中的值是   变长字符串。长度   可以指定为0到0之间的值   65,535。有效最大长度   VARCHAR的最大值   行大小(65,535字节,即   在所有列之间共享)和   使用的字符集。

答案 1 :(得分:2)

文档为here

  • varchar在MySQL 5.0.3及更高版本中的最大大小为65,535,在5.0.3之前的限制为255

请注意,有效尺寸较小,

  

a的有效最大长度   MySQL 5.0.3及更高版本中的VARCHAR是   受最大行大小限制   (65,535字节,在其中共享   所有列)和字符集   用过的。

您必须指定最大尺寸,例如varchar(1000)。仅陈述varchar是不够的。

答案 2 :(得分:2)

根据MySQL文档:

TEXT在以下方面与VARCHAR不同:

  • 存储或检索值时,TEXT列没有删除空格。在MySQL 5.0.3之前,这与VARCHAR不同,后者在存储值时会删除尾随空格。
  • 对于TEXT列的索引,必须指定索引前缀长度。对于CHAR和VARCHAR,前缀长度是可选的。
  • TEXT列不能包含DEFAULT值。

除了这些差异之外,使用VARCHAR就像使用TEXT一样,所以尺寸问题不应该让你在这两者之间做出选择,除非你真的需要存储不超过1000的字符。

答案 3 :(得分:0)

在MySQL中,VARCHAR最多接受65535个字符。

答案 4 :(得分:0)

你可以很容易地保证自己。 Mysql文档是公开访问的,它说

  

Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions

至于性能问题,没关系。不是数据类型,而是数据关系会影响性能。