mysql中的字符串长度是否有限制?

时间:2010-06-11 11:02:20

标签: sql mysql ruby-on-rails

我正在使用Rails的MySQL数据库。我创建了一个string类型的字段。它的长度有限制吗?怎么样text
同样,text的大小可变,我相信使用文本对象会产生额外的成本。如果有的话,他们有多重要?

3 个答案:

答案 0 :(得分:22)

一般来说,字符串应该用于短文本。例如,它是MySQL下的VARCHAR(255)

Text使用数据库中较大的文本,例如MySQL中的TEXT类型。

有关其工作原理以及MySQL内部和限制等方面的信息,请参阅Pekka的其他答案。

如果你要求一个段落,我会使用文字。如果您要请求用户名或电子邮件,请使用字符串。

答案 1 :(得分:21)

CHAR

  

固定长度的字符串,在存储时始终用空格填充指定长度。长度范围为1到255个字符。检索值时将删除尾随空格。除非给出CHAR关键字,否则将根据默认字符集对BINARY值进行排序和不区分大小写的比较。

VARCHAR

  

可变长度字符串。注意:存储值时将删除尾随空格(这与ANSI SQL规范不同)
  Length的范围是1到255个字符。除非提供VARCHAR关键字,否则BINARY值将按不区分大小写的方式进行排序和比较

TINYBLOB,TINYTEXT

  

TINYBLOBTINYTEXT列,最大长度为255(2 8 - 1)个字符

BLOB,TEXT

  

BLOBTEXT列,最大长度为65,535(2 16 - 1)个字符,字节= 64 KiB

MEDIUMBLOB,MEDIUMTEXT

  

MEDIUMBLOBMEDIUMTEXT列,最大长度为16,777,215(2 24 - 1)个字符,字节数= 16 MiB

LONGBLOB,LONGTEXT

  

LONGBLOBLONGTEXT列,最大长度为4,294,967,295(2 32 - 1)个字符,bytes = 4 GiB

有关详细信息,请参阅MySQL Data Types Quick Reference Table

您也可以看到MYSQL - String Type Overview

答案 2 :(得分:5)

请参阅String Types上的mySQL手册。

Varchar(String):

  

VARCHAR列中的值是可变长度字符串。长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值。 MySQL 5.0.3及更高版本中VARCHAR的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集。

文字:见storage requirements

如果您需要固定大小的文本字段,请使用CHAR,其长度最多为255个字符。 VARCHARTEXT都有可变长度。