ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [RDBMS/MySQL] MySQL varchar, char, text 차이점은 뭘까
    RDBMS 2021. 2. 24. 22:03

    신입의 패기로 호기롭게 면접을 보던 중 제목과 같은 질문을 받았다.

     

    당황했다. 

     

    그런데 문득 varcharchar간의 차이는 varchar는 가변적인 크기를 가지고 

    char는 그렇지 않다는 것이 떠올라 일단 대충 답변은 하였지만 textMySQL에 

    존재하는지 조차 몰랐기 때문에 그냥 모른다고 답변하였다.

     

    그렇게 질문 공격을 받은뒤 해당 내용이 궁금해졌고 바로 찾아볼려고 했지만

    바로 찾긴 무슨 ^^b

    기억속에서 바로 사라졌기 때문에 지금 생각나서 이 글을 작성하고 있다.

     

    우선 표로 보면 이렇다.

    TYPE BYTE DESCRIPTION
    char n <= 255 고정형이다!
    varchar n <= 65535 가변형이다! 
    text n <= 65535 가변형이다!

     

    char는 말 그대로 고정형

    ex) char(8)로 선언시 글자를 한개를 넣던 두개를 넣던 8바이트의 공간을 차지한다.

     

    varchar는 반대로 가변형

    ex) varchar(8)로 선언시 글자를 한개를 넣으면 1바이트 2개를 넣으면 2바이트의 공간을 유동적으로 차지한다.

     

    char는 경우에 따라 데이터가 낭비될 수 있지만 추후에 연산이 필요 없기 때문에 검색속도가 varchar에 비해 빠르다.

    글자수가 고정되는 ex) 주민번호, 전화번호 등등.. 곳에 사용하면 좋을 듯 싶다.

     

     

    그렇다면,

    varchartext의 차이는 뭘까?

     

    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

     

    'RDBMS' 카테고리의 다른 글

    [RDBMS/MariaDB] MariaDB의 기본 데이터베이스 알아보기  (0) 2021.08.26
    [RDBMS] DB의 Index 알아보기  (0) 2021.08.06

    댓글