💡 CHAR

  • 고정형
  • char는 데이터가 낭비될 수 있음
  • 추후에 연산이 필요 없어 검색 속도 및 읽히는 속도가 VARCHAR에 비해 빠름
  • ex) 주민번호, 전화번호 등에 사용하면 좋음

 

💡 VARCHAR

  • 가변길이 문자열 타입을 지정
  • 입력받은 데이터의 크기가 작을 경우, 그 크기만큼만 메모리를 차지하므로 메모리 사용량을 줄일 수 있다는 장점 가짐
  • 1~65535의 값을 가질 수 있음 (바이트 X, 글자 수 O)
  • 길이를 표현하기 위한 공간복잡도 2byte 오버헤드 존재
  • 255까지의 길이는 1byte, 256부터는 2byte 오버헤드 존재
  • 인덱스 생성 가능

 

💡 TEXT

  • 가변길이 문자열 타입을 지정
  • 최대 65535글자의 글자 적재 가능하지만 크기 미리 지정 불가
  • 길이를 표현하기 위해 무조건 2byte의 공간복잡도 존재
  • 인덱스를 제한적으로 생성 가능 (부분 prefix 인덱스만 가능)

 

 

💡 VARCHAR vs TEXT 비교!

 

Index의 일부로 사용 가능 여부

  • varchar : 가능
  • text : 불가능

max size limit 지정 가능 여부

  • varchar : 가능. 1 ~ 65535
  • text : 불가능. only 65535

저장된 character 이외의 현재 저장된 string의 저장 공간

  • varchar : x <= 255 then, 1 byte, 256 <= x <= 65535 then, 2 byte
  • text : only 2 byte

각각 언제 사용하는가?

  • varchar : ID, 이메일, 제목, 전화번호와 같은 간단한 정보 (비교적 짧은 문자열)
  • text : 댓글, 신문기사와 같은 긴 문장 종류들

기타

  • varchar : memory에 저장해서 빠름
  • text : disk에 저장해서 느림
  • text는 disk에 저장되기 때문에 자주 불리는 query에서는 성능 차이가 큼
    -> 데이터가 자주 검색 되는 경우 VARCHAR로 저장하는 것이 빠름

+ Recent posts