DB/MySQL

CHAR vs VARCHAR

annovation 2024. 12. 15. 10:15

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
길이 고정 길이 가변 길이
저장 방식 고정 크기로 저장 실제 데이터 길이에 따라 저장
속도 더 빠름 약간 느림
공간 효율성 공간 낭비 가능 공간을 효율적으로 사용
적합한 용도 고정 길이 데이터(우편번호 등) 가변 길이 데이터(이름 등)

 

  1. CHAR ➡️ 고정 길이 데이터, 빠른 검색 속도가 중요한 경우 사용
  2. 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