我正在创建一个发送私信的表单,并希望根据MySQL数据库表中的text
字段的最大长度设置textarea的maxlength
值。一个text
字段可以存储多少字符?
如果能存储很多字符,我是否能像使用varchar一样在数据库的text类型字段中指定长度?
我正在创建一个发送私信的表单,并希望根据MySQL数据库表中的text
字段的最大长度设置textarea的maxlength
值。一个text
字段可以存储多少字符?
如果能存储很多字符,我是否能像使用varchar一样在数据库的text类型字段中指定长度?
查看最大数字: 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 Kilobytes)
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Megabytes)
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gigabytes)
L是您的文本字段中的字节数。因此,文本的最大字符数为216-1(使用单字节字符)。这意味着可以使用65,535个单字节字符。
UTF-8 /MultiByte编码:使用MultiByte编码,每个字符可能会消耗超过1个字节的空间。对于UTF-8,每个字符的空间消耗在1到4个字节之间。
类型 | 大约长度 | 最大允许长度 |
---|---|---|
TINYTEXT | 256字节 | 255个字符 |
TEXT | 64千字节 | 65,535个字符 |
MEDIUMTEXT | 16兆字节 | 16,777,215个字符 |
LONGTEXT | 4吉字节 | 4,294,967,295个字符 |
基本上,它是这样的:
“最大允许长度” = “大约长度”(以字节为单位)- 1
注意:如果使用多字节字符(如阿拉伯语,每个阿拉伯字符占用2个字节),则 TINYTEXT
列的 “最大允许长度” 可以达到127个阿拉伯字符(注意:空格、短横线、下划线和其他此类字符占用1个字节)。
TINYTEXT: 256字节
TEXT: 65,535字节
MEDIUMTEXT: 16,777,215字节
LONGTEXT: 4,294,967,295字节
TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB LONGTEXT 4,294,967,295 bytes ~4GB
TINYTEXT
是一个字符串数据类型,可以存储最多255
个字符。
TEXT
是一个字符串数据类型,可以存储最多65,535
个字符。常用于存储简短文章。
LONGTEXT
是一个字符串数据类型,最大长度为4,294,967,295
个字符。如果需要存储大量文本,例如小说的一章,请使用LONGTEXT
。
L + 2字节,其中L < 2^16
,即64k。TEXT
是一种字符串数据类型,可以存储最多65,535个字符。但如果您想存储更多数据,则需要将其数据类型更改为LONGTEXT
。name_tabel
CHANGE text_field
LONGTEXT CHARACTER SET utf8
COLLATE utf8_general_ci
NOT NULL;Data Type Storage Required
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT, INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(p) 4 bytes if 0 <= p <= 24, 8 bytes if 25 <= p <= 53
FLOAT 4 bytes
DOUBLE, REAL 8 bytes
DECIMAL(M,D), NUMERIC(M,D) Varies; see following discussion
BIT(M) approximately (M+7)/8 bytes
DECIMAL(和NUMERIC)列的值使用二进制格式表示,将9个十进制(基数10)数字压缩到4个字节中。每个值的整数部分和小数部分的存储是分别确定的。每九个数字需要四个字节,而“剩余”的数字需要一些四个字节的分数。超出数字所需的存储由以下表格给出。
日期和时间类型的存储要求 对于TIME、DATETIME和TIMESTAMP列,MySQL 5.6.4之前创建的表与从5.6.4开始创建的表所需的存储不同。这是由于5.6.4中的更改允许这些类型具有小数部分,其需要0至3个字节。
Data Type Storage Required Before MySQL 5.6.4 Storage Required as of MySQL 5.6.4
YEAR 1 byte 1 byte
DATE 3 bytes 3 bytes
TIME 3 bytes 3 bytes + fractional seconds storage
DATETIME 8 bytes 5 bytes + fractional seconds storage
TIMESTAMP 4 bytes 4 bytes + fractional seconds storage
Fractional Seconds Precision Storage Required
0 0 bytes
1, 2 1 byte
3, 4 2 bytes
5, 6 3 bytes
Data Type Storage Required
CHAR(M) The compact family of InnoDB row formats optimize storage for variable-length character sets. See COMPACT Row Format Characteristics. Otherwise, M × w bytes, <= M <= 255, where w is the number of bytes required for the maximum-length character in the character set.
BINARY(M) M bytes, 0 <= M <= 255
VARCHAR(M), VARBINARY(M) L + 1 bytes if column values require 0 − 255 bytes, L + 2 bytes if values may require more than 255 bytes
TINYBLOB, TINYTEXT L + 1 bytes, where L < 28
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
ENUM('value1','value2',...) 1 or 2 bytes, depending on the number of enumeration values (65,535 values maximum)
SET('value1','value2',...) 1, 2, 3, 4, or 8 bytes, depending on the number of set members (64 members maximum)