백엔드

[mysql] boolean과 tinyInt의 차이점 / varchar, char, text 차이점

음그냥 2023. 3. 2. 01:32
728x90
반응형
SMALL

 

 

 

boolean과 tinyInt의 차이점

결론적으로 말하면 boolean과 tinyint는 동의어임

하지만 boolean은 언제나 true와 false를 나타내는 반면, tinyint는 0과 1일 뿐

 

 

 

 

varchar, char, text 차이점

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) 주민번호, 전화번호 등등.. 곳에 사용하면 좋을 듯 싶다.

 

 

그렇다면,

varchar 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

 

 

 

 

 

1,char 길이가 고정되어 있으며 모든 데이터가 같은 긴 바이트 공간을 차지한다. 신분증 번호, 핸드폰 번호 등에 적합
2. varchar 가변 길이로 최대 길이를 설정가능. 길이 변형에 적합한 속성임
3. text는 길이를 설정하지 않으며 속성의 최대 길이를 모르면 text를 사용하기에 적합
 


검색 속도 빠른순서 : char > varchar > text  (char가 가장빠름)
 

 


* char :

 

char(n)의 n은 문자 수를 표시하고 최대 길이는 255자

utf8 인코딩 방식이라면 char 형식은 255*3 바이트입니다.(utf8 다음 문자는 1~3바이트 차지)
 

 

 


* varchar :

 

varchar(n)의 n은 문자 수를 표시

최대 공간은 65535 바이트이며 문자 수량은 문자 집합과 관계가 있음
     MySQL5.0.3 이전 버전 varchar(n)의 n은 바이트 수를 나타낸다.
     MySQL5.0.3 이후 버전 varchar(n)의 n은 문자 수를 나타낸다.
 
+ varchar의 실제 범위는 65532 또는 65533임. 왜냐하면 내용 헤더가 1 또는 2바이트를 차지하기 때문에 이 문자열의 길이를 저장함

필드default null (기본값이 비어 있음) 은 전체 기록에 기본값null을 저장하는 바이트가 필요
utf8 인코딩이라면 varchar는 최대 65532/3 = 21844자를 저장
 

 


* text:
 

보통 게시판 내용의 type은 text로 많이씀

varchar와 기본적으로 같고 이론적으로 최대 65535자의 문자를 저장하는데 실제로text가 메모리 공간을 차지하는 최대도 65535바이트임.

문자 인코딩 방식을 고려하면 한 문자가 여러 바이트를 차지하고text는 그렇게 많은 문자를 저장할 수 없음.


+ varchar 조회 속도가 빨라서 varchar를 사용할 수 있을 때 text를 사용하지 않음.

 

 

 

 

 

출처 : [RDBMS/MySQL] MySQL varchar, char, text 차이점은 뭘까 :: 개발자취 (tistory.com)

MySQL char, varchar, text 차이점 (intrepidgeeks.com)

728x90
LIST