Database/MySQL

VARCHAR vs TEXT

2mukee 2024. 1. 20. 16:01
320x100
320x100

VARCHAR

: 가변 길이 문자열을 저장

: 1부터 65535의 값을 가질 수 있음

: 길이를 표현하기 위한 공간복잡도 오버헤드 존재 (255까지의 길이는 1byte, 이후로는 2byte)

: 인덱스를 생성할 수 있음

 

- 최대 저장 크기

: 32,672 byte

: 8,168 글자 입력 가능

 

 

 

 

TEXT

: 가변 길이 문자열을 저장

: 최대 65535 글자를 생성할 수 있으나, 크기를 미리 지정할 수 없음

: 길이를 표현하기 위해 무조건적으로 2byte의 공간복잡도가 존재

: 인덱스를 제한적으로 생성 가능하지만, 부분 prefix 인덱스만 가능

 

 

 

 

 

VARCHAR vs TEXT

- 레코드 관점

: VARCHAR 컬럼이 너무 큰 길이를 사용하면 다른 컬럼들이 사용할 수 있는 최대 공간의 크기에 영향을 끼침

: 이러한 레코드 사이즈의 한계를 고려하여 VARCHAR 타입의 컬럼에는 공간을 아껴서 설정해야한다

: TEXT의 경우 레코드 사이즈 한계에 영향을 끼치지 않는다

 

- 메모리 관점

: VARCHAR의 경우 설정한 크기 만큼 메모리를 미리 할당받는다

: TEXT의 경우 미리 할당해준 메모리가 없기 때문에 매번 필요한 크기 만큼 메모리를 할당해서 해제후 사용해야함

: 때문에 성능 영향도를 계산하기 어렵다

 

- VARCHAR

: 최대 길이가 상대적으로 크지 않은 경우

: 테이블 데이터를 읽을 때 항상 해당 컬럼이 필요한 경우

: DBMS 메모리가 충분한 경우

 

- TEXT

: 최대 길이가 상대적으로 큰 경우

: 테이블에 길이가 긴 문자열 타입 컬럼이 많이 필요한 경우

: 테이블 데이터를 읽을 때 해당 컬럼이 자주 필요치 않은 경우

 

 

 

 

 

 

 

Reference

 

MySQL VARCHAR과 TEXT의 차이점과 적용시기

각 타입의 특징 VARCHAR 컬럼에 가변길이 문자열 타입을 지정 1부터 65535의 값을 가질 수 있음 (바이트가 아닌 글자 수) 길이를 표현하기 위한 공간복잡도 오버헤드가 있음 255까지의 길이는 1byte, 256

leezzangmin.tistory.com

 

VARCHAR vs TEXT

개요

medium.com

 

300x250
728x90