Varchar(10) vs Varchar(1000), 어떤 차이가 있을까요?
Varchar vs Text, 어떤 차이가 있을까요?
MySQL을 기준으로 문자열 타입 데이터가 내부에서 어떻게 처리되는지 잘 설명해주신 글이 있어 공유합니다.
언제 어떤 타입을 써야할지 가이드도 적어주셨어요. 본문의 말처럼 상대적인거라 명확한 숫자로 표현되지는 않습니다.
—-
> 컬럼 타입 선정 규칙
MySQL 서버의 내부적인 작동에서, VARCHAR와 TEXT 타입의 큰 차이점을 살펴보았어요. 지금까지 살펴본 내용을 토대로 VARCHAR나 TEXT 타입을 선택하는 규칙을 다음과 같이 정리해 볼 수 있어요.
VARCHAR
최대 길이가 (상대적으로) 크지 않은 경우
테이블 데이터를 읽을 때 항상 해당 컬럼이 필요한 경우
DBMS 서버의 메모리가 (상대적으로) 충분한 경우
TEXT
최대 길이가 (상대적으로) 큰 경우
테이블에 길이가 긴 문자열 타입 컬럼이 많이 필요한 경우
테이블 데이터를 읽을 때 해당 컬럼이 자주 필요치 않은 경우
> 상대적이라는 단어가 많이 사용된 것은 DBMS 서버의 스펙이나 데이터 모델 그리고 유입되는 트래픽에 따라서 미치는 영향도가 다르기 때문이에요. 뿐만 아니라 DBMS 서버의 튜닝은 생산성(속도)과 효율성 사이에서 최적점(sweet-spot)을 찾는 과정이기 때문에 숫자 값 하나를 모든 판단의 기준으로 정하는 것은 불가능해요.