개인 메시지를 보내기위한 양식을 만들고 MySQL 데이터베이스 테이블 maxlength
의 최대 text
필드 길이에 적합한 텍스트 영역 의 값 을 설정하려고 합니다. 문자 입력란에 문자를 몇 개나 저장할 수 있습니까?
많은 경우 varchar와 마찬가지로 데이터베이스 텍스트 유형 필드에 길이를 지정할 수 있습니까?
개인 메시지를 보내기위한 양식을 만들고 MySQL 데이터베이스 테이블 maxlength
의 최대 text
필드 길이에 적합한 텍스트 영역 의 값 을 설정하려고 합니다. 문자 입력란에 문자를 몇 개나 저장할 수 있습니까?
많은 경우 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 Kilobytes)
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Megabytes)
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gigabytes)
L은 텍스트 필드의 바이트 수입니다. 따라서 텍스트의 최대 문자 수는 2 16 -1입니다 (1 바이트 문자 사용). 65535자를 의미합니다 (1 바이트 문자 사용).
UTF-8 / 멀티 바이트 인코딩 : 각 문자가 멀티 바이트 인코딩을 사용하면 1 바이트 이상의 공간이 소비 될 수 있습니다. UTF-8의 경우 공간 소비는 문자 당 1-4 바이트입니다.
TINYTEXT : 256 바이트
텍스트 : 65,535 바이트
중간 텍스트 : 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 바이트 문자 임).
기본적으로 다음과 같습니다.
"정확한 최대 길이 허용"= "약 길이"(바이트)-1
주문에 따라 http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html , 한계는 L + 2 bytes, where L < 2^16
, 또는 64K.
당신은 그것을 제한하는 것에 대해 걱정할 필요가 없습니다. 문자열이 커짐에 따라 추가되는 덩어리로 자동 분류되므로 항상 맹목적으로 64k를 사용하지는 않습니다.
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
문자를 저장할 수있는 문자열 데이터 유형입니다 . TEXT
일반적으로 간단한 기사에 사용됩니다.
LONGTEXT
최대 4,294,967,295
문자 길이를 가진 문자열 데이터 유형입니다 . LONGTEXT
소설의 장과 같은 큰 텍스트를 저장해야하는 경우에 사용하십시오 .
MySql 버전 8.0의 경우
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 바이트로 묶는 이진 형식을 사용하여 표시됩니다. 각 값의 정수 및 소수 부분에 대한 저장은 별도로 결정됩니다. 9 자리의 각 배수에는 4 바이트가 필요하고 "남은"자리수에는 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
MySQL 5.6.4부터 YEAR 및 DATE의 스토리지는 변경되지 않습니다. 그러나 TIME, DATETIME 및 TIMESTAMP는 다르게 표시됩니다. DATETIME은 비소수 부분에 8 바이트가 아닌 5 바이트를 필요로하여보다 효율적으로 압축되며, 세 부분 모두 저장된 값의 소수 초 정밀도에 따라 0에서 3 바이트 사이의 소수 부분이 필요합니다.
Fractional Seconds Precision Storage Required
0 0 bytes
1, 2 1 byte
3, 4 2 bytes
5, 6 3 bytes
예를 들어, TIME (0), TIME (2), TIME (4) 및 TIME (6)은 각각 3, 4, 5 및 6 바이트를 사용합니다. TIME과 TIME (0)은 동일하며 동일한 스토리지가 필요합니다.
임시 값의 내부 표현에 대한 자세한 내용은 MySQL 내부 : 중요 알고리즘 및 구조를 참조하십시오.
문자열 유형 저장 요구 사항 다음 표에서 M은 이진이 아닌 문자열 유형의 문자로 선언 된 열 길이를 나타내고 이진 문자열 유형의 바이트로 나타냅니다. L은 주어진 문자열 값의 실제 길이를 바이트 단위로 나타냅니다.
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)