[MySQL] CHAR vs VARCHAR

기훈·2024년 7월 3일

MySQL

목록 보기
18/23

공통점

  • 문자열 저장용 컬럼
  • 최대 저장 가능 문자 길이 명시(바이트 수 아님)

차이점

  • CHAR는 고정된 공간을 할당 (CHAR(8)로 선언 시 글자를 몇개를 넣든 8바이트의 공간을 차지)
  • VARCHAR는 가변형 문자이기 때문에 데이터 길이가 변함 (VARCHAR(8)로 선언시 글자 한개 넣으면 1바이트, 2개 넣으면 2바이트의 공간을 유동적으로 차지)
  • VARCHAR는 저장된 데이터 길이를 저장, CHAR 같은 경우도 UTF8MB4와 같이 가변길이 문자 경우에 길이 저장

컬럼 값의 길이 변경시 작동 방법

  • 저장이 가능한 공간을 찾아 처음 저장되었던 공간은 delete marking 한다.
  • 빈공간을 찾지 못하면 초기화 후 새로운 공간을 확보하여 저장한다.

문자열 타입 선정

  • 값의 가변길이 범위 폭이 좁고 자주 변경되는 경우 CHAR을 선택하자 그렇지 않으면 데이터 페이지 내부의 조각화 현상과 빈번한 Page Reorganize 작업이 필요하게 된다.

0개의 댓글