본문 바로가기
카테고리 없음

[MySQL] 자료형 CHAR 와 VARCHAR의 차이점에 대해 알아보자.

by MilkSweetpotato 2020. 11. 19.

※ 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 이다.