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
'💻 하나씩 차곡차곡 > DB (SQL)' 카테고리의 다른 글
데이터베이스 생성시 Charset은 뭘로 해야 하나요? (1) | 2025.04.03 |
---|---|
[DBeaver(디비에버)] 다크모드 변경하기 (0) | 2024.04.01 |
[DBeaver(디비에버)] 대문자 자동변환 설정하기 (0) | 2024.04.01 |
[DBeaver(디비에버)] 오토커밋 (Auto Commit) 끄는 법 (0) | 2024.04.01 |
[SQL] SQL 자동생성해주는 사이트 aquerytool 사용하기 (0) | 2024.03.27 |
뚜루리님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.