[MySQL] 데이터 타입 CHAR, VARCHAR 의 차이점

Walter Mitty·2023년 5월 12일
0

ㅋㅇㅇㅇㅇㄷㅇ

목록 보기
1/1

입사 후 새로운 프로젝트를 시작하면서 ERD를 짜게됐다. MySQL에서 문자열을 담는 데이터 타입이 정리된 표를 보다가
문득 CHAR 타입과 VARCHAR 타입의 차이점이 궁금해서 비교해보려고한다!

시작하기에 앞서, MySQL 4.1 이후 버전 부터는
CHAR(n), VARCHAR(n) 에서 n은 바이트가 아니라 글자 수를 의미한다고 한다.
또한 4글자 이하의 VARCHAR는 CHAR 타입으로 자동 변환된다.

CHAR

'CHAR'길이가 고정된 문자열 타입이다.

지정된 크기만큼 데이터가 들어오지 않는 경우 남은 공간을 공백(trailing space)으로 채워 넣게되고, 최대 길이는 255다.
따라서 남는 공간이 공백으로 채워지기 때문에 데이터의 낭비가 발생할 수 있다. 따라서 반드시 길이가 고정된 데이터만 CHAR로 선언하자!

VARCHAR

'VARCHAR'가변의 문자열 타입이다.

Variable Character Filed 라는 이름의 의미처럼 가변의 길이를 가진 문자열 타입이다.
데이터를 삽입할 때 데이터 값 외에 삽입된 문자열의 길이를 함께 저장 하는데, 255글자 이하에는 1byte, 255글자가 넘는 문자열의 경우 2byte의 추가 공간을 필요로 한다.
== 따라서 실질적인 데이터와 데이터에 대한 길이도 함께 저장되는 구조라고 생각하면 된다.

나는 유연성이 더 좋은 VARCHAR를 사용할 예정!!
이 전 부트캠프에서 프로젝트를 할 때는, 기획도 디자인도 개발도 알아서 하다보니 팀원끼리 말만 맞으면 됐지만
지금은 글자수가 확실히 정해져있다 해도, 기획팀이나 운영을하면서 언제든 변할 수 있는 부분이기 때문에 유연성을 위해서라도 바차로 고고

0개의 댓글