본문 바로가기
DB/데이터베이스

[DB] too long data 오류 /MySQL 데이터형 및 크기

by 꼬바리 2023. 1. 5.

자료형이 왜 필요하는지?

- “더 작은 공간을 사용하면서” , “더 빠르게 처리할수 있는” 프로그램을 만들기 위해서 데이터 자료형을 사용

- 작은 공간에 넣을수록 연산(SELECT 등의 연산)이 빨라지고 공간도 적게 차지

 

CHAR(M)
[BINARY]




- 자료형의 크기 : char 필드의 CHARACTER SET 에 따라 가변적임. 예를들어 char(10) 이면서 utf4mb8 일 경우 고정 40Byte 사용.


- 범위 : 1 에서 255 글자


- 주의 : 고정길이로 길이가 작은 값이 입력되면 오른쪽에 스페이스로 채워져서 입력된다. BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다.

VARCHAR(M)
[BINARY]





- 자료형의 크기 : varchar 필드의 CHARACTER SET 에 따라 가변적임. 예를들어 varchar(10) 이면서 utf4mb8 일 경우 최대(크기인덱스 1Byte + 데이터 40Byte 사용).


- 범위 : 1 에서 255 글자 (현재는 1에서 65535 글자 까지. 그러나 varchar(255) 이상을 사용하고 싶은 경우 text 자료형을 사용하여라)


- 주의 : BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다.


- TIP1 : 모든 데이터 값의 길이가 고정일 경우 char 가 varchar 보다 저장공간도 적게 차지하고 속도도 아주 약간 더 빠르다.

- TIP2 : 대부분의 상황에서 varchar 와 char 는 IN/OUT 이 동일하게 처리된다. 아무거나 써도 되지만 varchar 를 선택하기를 권장한다.

TINYTEXT
- 범위 : 최대 255 byte

TEXT



- 자료형의 크기 : 최대 65535 Byte (= 대략 64 KB)


- 범위 : 최대 65535 byte. utf8 기준(3바이트 문자)으로 21844 글자 저장가능.


- 허용크기 계산법 : 65536 = 2^16 = 2Byte 이다. 모든 text 값에는 반드시 이 크기지정 바이트가 붙는다. 따라서 한글의 경우 (65535-2)/3 글자 만큼 저장할 수 있다.

MEDIUMTEXT
- 범위 : 최대 16777215 byte (= 대략 16MB)

LONGTEXT
- 범위 : 최대 4294967295 byte (= 대략 4GB)

ENUM
(‘value1′,’value2’,…)

- 범위 : ‘value1’, ‘value2’, …, or NULL 만이 입력가능하다. 최대 65535 개의 다른 값이 들어갈수 있다.

SET
(‘value1′,’value2’,…)

- 범위 : ‘value1’, ‘value2’, …, or NULL 만이 입력가능하다. 최대 64 개의 다른 값이 들어갈수 있다.

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글