MySQLtypes文本的最大长度

我正在创build一个发送私人消息的表单,并希望设置一个textarea的最大长度值适合我的MySQL数据库表中的text字段的最大长度。 types文本字段可以存储多less个字符?

如果很多,我将能够在数据库文本types字段中指定长度,因为我会与varchar?

查看最大数量: http : //dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

 TINYBLOB, TINYTEXT L + 1 bytes, where L < 2^8 (255 Bytes) BLOB, TEXT L + 2 bytes, where L < 2^16 (64 Kibibytes) MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Mebibytes) LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gibibytes) 

L是文本字段中的字节数。 所以文本的最大字符数是2 16 -1(使用单字节字符)。 意味着65 535个字符(使用单字节字符)。

UTF-8 / MultiByte编码 :对每个字符使用MultiByte编码可能消耗多于1个字节的空间。 对于UTF-8,每个字符的空间消耗在1到4个字节之间。

TINYTEXT:256字节
文本:65535字节
MEDIUMTEXT:16,777,215字节
LONGTEXT:4,294,967,295字节

 Type | Approx. Length | Exact Max. Length Allowed ----------------------------------------------------------- TINYTEXT | 256 Bytes | 255 characters TEXT | 64 Kilobytes | 65,535 characters MEDIUMTEXT | 16 Megabytes | 16,777,215 characters LONGTEXT | 4 Gigabytes | 4,294,967,295 characters 

注意:如果使用多字节字符,则“准许的最大长度允许”列将有不同的长度。 例如:如果您使用2个字节的字符,则TINYTEXT的确切最大长度将是127个字符。 基本上,这是允许的字节数-1。

根据http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html ,限制是L + 2 bytes, where L < 2^16或64k。

你不需要关心自己的限制,它会自动分解成随着string增长而添加的块,所以它不会总是盲目地使用64k。

types文本字段可以存储多less个字符?

根据文档如果字符集是UTF8,则最多可以使用21,844个字符

如果很多,我可以指定长度在数据库文本types字段,因为我会与varchar?

你不需要指定长度。 如果您需要更多的字符使用数据typesMEDIUMTEXT或LONGTEXT。 使用VARCHAR,指定的长度不适用于存储要求,仅用于从数据库中检索数据的方式。

 TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB LONGTEXT 4,294,967,295 bytes ~4GB 

TINYTEXT是一个string数据types,最多可存储255字符。

TEXT是一个string数据types,最多可存储65,535字符。 TEXT通常用于简短的文章。

LONGTEXT是一个string数据types,最大长度为4,294,967,295字符。 如果您需要存储大量文本,例如小说的章节,请使用LONGTEXT

TEXT是一个string数据types,最多可存储65,535个字符。 但是,如果你想存储更多的数据,然后改变它的数据types为LONGTEXT

ALTER TABLE name_tabel CHANGE text_field LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;