CHAR-VARCHAR
1. CHAR와 VARCHAR 타입
- CHAR와 VARCHAR는 MySQL에서 문자열 데이터를 저장하는 가장 기본적이고 중요한 데이터 타입입니다.
- 두 타입은 문자열을 저장한다는 공통점이 있지만, 저장 방식, 검색 방식, 메모리 사용량, 성능 특성에서 중요한 차이점을 보입니다.
1.1 핵심 차이점
- 저장 방식: CHAR는 고정 길이, VARCHAR는 가변 길이
- 공간 효율성: VARCHAR가 일반적으로 더 효율적
- 성능: CHAR가 특정 상황에서 더 빠를 수 있음
- 후행 공백 처리: 두 타입이 서로 다른 방식으로 처리
1.2 언제 사용하는가?
- CHAR: 고정 길이 데이터 (국가 코드, 상태 코드, 해시값 등)
- VARCHAR: 가변 길이 텍스트 (이름, 제목, 설명 등)
2. 기본 특성
2.1 선언 방식
- CHAR와 VARCHAR 타입은 저장하려는 문자의 최대 길이를 나타내는 숫자와 함께 선언됩니다.
- 이 숫자는 문자 개수를 의미하며, 바이트 수가 아닙니다.
- 한글과 같은 멀티바이트 문자의 경우, 하나의 문자가 여러 바이트를 차지할 수 있습니다.
-- 기본 선언 방식
CHAR(길이) -- 고정 길이
VARCHAR(길이) -- 최대 길이
-- 구체적인 예시
CHAR(30) -- 정확히 30자, 항상 30자 공간 사용
VARCHAR(30) -- 최대 30자, 실제 길이만큼 공간 사용
VARCHAR(255) -- 최대 255자, 1바이트 길이 접두어 사용
VARCHAR(1000) -- 최대 1000자, 2바이트 길이 접두어 사용