BACKEND [Kamranahmedse Roadmap]/DB

[MySQL] VARCHAR vs TEXT 차이

Alex Han 2025. 3. 25. 03:44
반응형
구분 VARCHAR TEXT
저장 크기 최대 65,535 바이트 (InnoDB에서 row 크기 제한 주의!) 최대 65,535 바이트 (Long Text는 더 큼)
길이 지정 길이 지정 필수 (ex. VARCHAR(255)) 길이 지정 불필요
저장 위치 테이블의 행 내부에 저장 외부 저장 (행 내부엔 포인터만 저장)
인덱스 인덱스 가능, 효율적 기본적으로 인덱싱 불가 (명시적으로 길이 제한해줘야 일부 가능)
용도 짧은 문자열 (이메일, 이름 등 고정/예상 가능한 크기) 긴 텍스트 (설명, 블로그 본문, 코멘트 등)
성능 빠름 (바로 읽기 가능) 상대적으로 느림 (포인터 따라가야 함)

 

 

 


📌 간단하게 말하면

VARCHAR

길이 예측 가능하고, 자주 조회/검색/정렬할 데이터에 적합

→ 예: 이름, 이메일, URL 등.

TEXT

길이 예측 어려운, 긴 글이나 설명 저장용

→ 예: 게시글 본문, 프로젝트 상세 설명, 후기 등.

→ 주의: 정렬, WHERE 조건, 인덱스 쓸 때 제약 있음.

 

 

 


🚩 주의 사항

InnoDB 엔진은 한 행(row)의 최대 크기가 65,535 bytes.

VARCHAR가 너무 크면 → TEXT처럼 외부 저장될 수도 있음.

TEXT는 기본적으로 인덱스 생성이 불가능. → 필요하면 CREATE INDEX idx ON table(column(255)); 처럼 일부만 인덱싱 가능.

반응형