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

Nik*_*arg 21 mysql sql ruby-on-rails

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

alt*_*ive 23

通常,字符串应该用于短文本.例如,它是VARCHAR(255)MySQL下的.

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

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

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


Pau*_*sch 23

CHAR

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

VARCHAR

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

TINYBLOB,TINYTEXT

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

BLOB,TEXT

A BLOBTEXT列,最大长度为65535(2 16 - 1)个字符

MEDIUMBLOB,MEDIUMTEXT

A MEDIUMBLOBMEDIUMTEXT列,最大长度为16777215(2 24 - 1)个字符

LONGBLOB,LONGTEXT

A LONGBLOBLONGTEXT列,最大长度为4294967295(2 32 - 1)个字符

有关详细信息,请参阅MySQL数据类型快速参考表.


Pek*_*ica 5

请参见有关字符串类型的mySQL手册。

Varchar(字符串):

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

文字:请参阅存储要求

如果要使用固定大小的文本字段,请使用CHAR最大长度为255个字符的文本字段。VARCHAR并且TEXT两者都有可变的长度。