※ CHAR
- 고정된 사이즈를 갖는다.
- 남은 공백은 공백으로 채운다.
예시)
CHAR(10) 선언 (10 byte 크기로 선언됨)
INSERT 'aaa'(3 byte)
나머지 7 byte는 공백으로 처리
따라서 최종 저장된 데이터의 크기는 10 byte가 된다.
- 값을 받아올때는 공백은 자동 제거된다.
☆ 공백까지 읽어오는 방법
PAD_CHAR_TO_FULL_LENGTH 활성화
- 결론적으로, CHAR형의 경우 삽입되는 데이터 크기가 선언된 크기에 비해 작다면, 낭비가 발생한다.
- 그러므로 고정길이에 해당하는 데이터만 CHAR로 선언하는것을 추천한다.
※ VARCHAR
- 가변길이를 갖는다.
- 데이터 삽입시 데이터값과 데이터 크기에 대한 정보 ( 1 byte = 이하 ← 기준 255 byte → 초과 = 2 byte)를 함께 d저장한다.
예시)
실질적 데이터 크기 + 데이터의 크기에 대한 정보
VARCHAR(10) 선언 (최대 10 byte 크기로 선언)
INSERT `aaa` (3 byte)
3 byte (데이터 크기) + 1 byte (데이터 크기가 255 byte 이하라는 정보) 저장
다라서 최종 저장된 데이터의 크기는 4 byte
- 저장 가능한 데이터 크기는 MySQL 5.0.3 이후 기준, 0 byte ~ 65,535 byte 이다.