본문 바로가기
💻 하나씩 차곡차곡/DB (SQL)

MySQL에서 어떨 때 VARCHAR, TEXT를 써야 하나요?

by 뚜루리 2025. 4. 3.
728x90
320x100

✅ VARCHAR vs TEXT의 차이

항목 VARCHAR(n) TEXT
목적 짧은 가변 길이 문자열 문자열 (대량 텍스트)
길이 제한 최대 65,535 바이트 (InnoDB 일반적으로 65535 일부만 사용 가능) 최대 65,535 바이트 (하지만 실제 저장 방식이 다름, 로우 외부)
인덱스 가능 (부분/전체 인덱싱 가능) 기본적으로 인덱스 불가 (부분 인덱싱은 수동 설정 필요)
성능 빠르고 효율적 (메모리 상에 저장) 느릴 있음 (별도 공간에 저장됨)
NULL 허용 여부 가능 가능

그러나,

  • VARCHAR(n)은 n 바이트 제한이 아니라 문자 수 제한 (UTF-8이면 최대 n×3 바이트)
  • TEXT는 기본적으로 최대 65,535 바이트까지 저장 가능하되, 문자 수 제한은 없음
  • VARCHAR도 전체 row가 65,535 바이트 넘으면 저장 안 됨 (다른 칼럼 포함해서)

 

🔍 언제 VARCHAR를 쓰고 언제 TEXT를 써야 할까?

사용 케이스 추천 타입 이유
이메일, 이름, 닉네임 등 길이가 명확히 짧은 문자열 VARCHAR(n) 검색, 정렬, 인덱싱에 유리
소개글, 본문 내용 사용자가 얼마나 입력할지 모르는 텍스트 TEXT 길이 제약 없이 자유롭게 작성 가능

 

728x90
320x100

뚜루리님의
글이 좋았다면 응원을 보내주세요!