mysql中的字符串长度是否有限制?
我正在使用Rails的MySQL数据库。 我创建了一个string
类型的字段。 它的长度有限制吗? 那么输入text
怎么样?
此外,由于text
大小可变,我相信使用文本对象会产生额外的成本。 如果有的话,他们有多重要?
通常,字符串应该用于短文本。 例如,它是MySQL下的VARCHAR(255)
。
Text使用数据库中较大的文本,例如,在MySQL中, TEXT
类型。
有关其工作原理以及MySQL内部和限制等方面的信息,请参阅Pekka的其他答案。
如果你要求一个段落,我会使用文字。 如果您要请求用户名或电子邮件,请使用字符串。
CHAR
固定长度的字符串,在存储时始终用空格填充指定长度。长度范围为1到255个字符。 检索值时将删除尾随空格。 除非给出
BINARY
关键字,否则将根据缺省字符集以不区分大小写的方式对CHAR
值进行排序和比较。
VARCHAR
可变长度的字符串。 注意:存储值时将删除尾随空格(这与ANSI SQL规范不同)
Length的范围是1到255个字符。 除非给出BINARY
关键字,否则VARCHAR
值将以不区分大小写的方式进行排序和比较
TINYBLOB,TINYTEXT
BLOB
或TEXT
列,最大长度为255(2 8 – 1)个字符
BLOB,TEXT
BLOB
或TEXT
列,最大长度为65535(2 16 – 1)个字符
MEDIUMBLOB,MEDIUMTEXT
BLOB
或TEXT
列,最大长度为16777215(2 24 – 1)个字符
LONGBLOB,LONGTEXT
BLOB
或TEXT
列,最大长度为4294967295(2 32 – 1)个字符
有关详细信息,请参阅MySQL数据类型快速参考表 。
请参阅有关字符串类型的mySQL手册。
Varchar(String):
VARCHAR列中的值是可变长度字符串。 长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值。 MySQL 5.0.3及更高版本中VARCHAR的有效最大长度受最大行大小(65,535字节,在所有列之间共享)和使用的字符集的限制。
文本:请参阅存储要求
如果需要固定大小的文本字段,请使用CHAR
,其长度最多为255个字符。 VARCHAR
和TEXT
都有可变长度。