CHAR와 VARCHAR는 MySQL에서 문자열 데이터를 저장할 때 사용하는 두 가지 주요 데이터 타입입니다.
CHAR
* 특징
- 고정 길이(Fixed Length)
- 데이터가 고정된 길이로 저장됩니다.
- ex. CHAR(10)으로 정의된 컬럼은 문자열이 짧아도 항상 10바이트를 차지합니다.
- "Hi"라는 문자열을 저장하면, 나머지 공간에 공백이 채워집니다.
CREATE TABLE char_example (
code CHAR(5)
);
INSERT INTO char_example (code) VALUES ('AB');
-- 'AB' 저장 시 나머지 3자리는 공백으로 채워져 저장됨.
* 장점
- 빠른 접근 속도
- 고정된 길이로 데이터가 저장되므로, 검색과 조회 속도가 더 빠릅니다.
- 일정한 크기로 저장되기 때문에 디스크에서 데이터를 읽을 때 효율적입니다.
* 단점
- 공간 낭비
- 저장된 문자열 길이가 컬럼 정의 길이보다 짧으면, 남는 공간이 공백으로 채워져 저장 공간이 낭비됩니다.
* 사용 예시
- 고정된 길이의 데이터를 저장할 때 적합
- ex. 우편번호, 전화번호, 국가 코드 등
VARCHAR
* 특징
- 가변 길이(Variable Length)
- 저장된 데이터의 길이만큼만 저장 공간을 차지합니다.
- ex. VARCHAR(10)으로 정의된 컬럼에 "Hi"를 저장하면, 실제로 2바이트만 저장됩니다.
CREATE TABLE varchar_example (
name VARCHAR(50)
);
INSERT INTO varchar_example (name) VALUES ('Alice');
-- 'Alice'는 5자만 저장됨.
* 장점
- 공간 절약
- 데이터의 길이에 따라 공간을 효율적으로 사용합니다.
* 단점
- 속도 저하 가능성
- 길이가 가변적이므로, 데이터를 검색하거나 조회할 때 약간의 속도 저하가 발생할 수 있습니다.
- 데이터가 길어질 경우 저장 위치가 변경될 가능성 때문에 관리 오버헤드가 발생할 수 있습니다.
* 사용 예시
- 길이가 일정하지 않은 데이터를 저장할 때 적합
- ex. 사용자 이름, 이메일 주소, 메모 등
요약
| 특성 | CHAR | VARCHAR |
| 길이 | 고정 길이 | 가변 길이 |
| 저장 방식 | 고정 크기로 저장 | 실제 데이터 길이에 따라 저장 |
| 속도 | 더 빠름 | 약간 느림 |
| 공간 효율성 | 공간 낭비 가능 | 공간을 효율적으로 사용 |
| 적합한 용도 | 고정 길이 데이터(우편번호 등) | 가변 길이 데이터(이름 등) |
- CHAR ➡️ 고정 길이 데이터, 빠른 검색 속도가 중요한 경우 사용
- VARCHAR ➡️ 가변 길이 데이터, 저장 공간 효율성이 중요한 경우 사용
출처
OpenAI의 ChatGPT (https://openai.com)
'DB > MySQL' 카테고리의 다른 글
| SELECT문 실행 순서 (0) | 2024.12.30 |
|---|---|
| AUTO_INCREMENT (0) | 2024.12.29 |
| DBMS를 사용하는 이유 feat. MySQL (1) | 2024.12.27 |
| SQL (0) | 2024.12.26 |
| INDEX (0) | 2024.12.21 |