MySQL - Varchar 와 char 자료형 차이점

컴퓨터/데이터베이스

728x90
반응형

문자열 자료형 Varchar와 Char 

MySQL에서 문자열을 저장하기 위한 기본적인 자료형은 크게 2가지가 있습니다.

VARCHAR 가변형 문자열
CHAR 고정현 문자열

위 2가지의 자료형은 문자열을 저장한다는 목적은 같지만 기능적인 부분에서 분명한 차이를 가지고 있습니다. 오늘은 이 내용을 알아보고 추후에 데이터 베이스에서 문자열 데이터를 설계하기 위한 이해를 하는데 도움을 받도록 해보겠습니다.

 

가변 자료형 - VARCHAR

가변 자료형이라고 불리는 이 VARCHAR는 말 그대로 데이터의 자료형이 가변이라는 것입니다. 

예를 들어 아래와 같이 가변 자료형이 있다고 가정합시다.

VARCHAR(20)으로 정의된 Test_Data

이경우 Test_Data라는 변수명, 또는 테이블 칼럼에는 최대 20Byte에 문자열을 저장할 수 있습니다. 

하지만 VARCHAR로 선언된 칼럼의 경우 문자열의 Data가 20Byte보다 적다면 저장된 문자열의 크기만큼만을 저장합니다.

이렇게 입력되는 데이터의 크기에 따라서 공간이 가변적으로 설정되기 때문에 가변형 문자열이라고 하며, 효율적으로 데이터 공간을 사용할 수 있게 됩니다.

 

고정 자료형 - CHAR

그렇다면 고정 자료형인 CHAR의 형태는 쉽게 유추해 볼 수 있습니다.

항상 정의된 크기만큼의 공간을 가지고 있는 자료형이라는 것 입니다. 

CHAR(20)으로 정의된 Test_Data

Test_Data라는 컬럼은 어떠한 문자열이 입력되는 20Byte의 공간을 차지합니다. 그럼 이런 고정 자료형의 장점은 무엇일까요?

VARCHAR형과 비교를 하여 생각해 보면 CHAR형 자료형은 비교적 자료형 설계 구조가 간단합니다. 추가적으로 입력된 문자열의 크기를 계산할 필요가 없고 고정적으로 할당된 공간에 데이터를 집어넣기만 하면 되기 때문입니다. 이런 구조적인 차이 때문에 추후에 수많은 데이터가 들어가 있는 테이블에서 검색을 할 때에도 비교적 간단한 구조인 고정 자료형은 검색, 수정 등을 하기에 비교적 빠른 속도로 가능합니다. 

따라서 공간의 사용률 적인 측면에서는 효율이 떨어지나 많은 데이터를 검색하고, 수정하기에는 용의 한 자료형입니다.

 

정리

어떤 문자열 자료형 데이터가 더 좋다고는 말할 수 없습니다. 하지만 2가지 자료형의 장점은 명확하게 확인할 수 있었습니다.

 

  • VARCHAR - 가변 자료형
    • 가변 자료형으로 정의하면 입력한 데이터의 크기만큼의 공간만을 할당한다
      • 따라서 공간 효율이 뛰어나다
  • CHAR - 고정 자료형
    • 고정 자료형으로 정의하면 정의한 데이터의 크기만큼의 공간을 할당한다.
      • 따라서 공간 효율은 비교적 떨어지나, 구조가 간단하여 추후 데이터를 검색,수정등에 속도는 빠르다.
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :