4-1. 왜 데이터 타입 선택이 중요한가

논리적 모델의 "나이" 속성을 물리적 모델의 컬럼으로 바꾼다고 가정한다. 한 개발자가 다음과 같이 생각한다고 하자.

"나이는 숫자니까, 넉넉하게 가장 큰 정수 타입인 BIGINT로 저장한다."

BIGINT는 922경 같은 엄청난 값을 저장할 수 있는 타입이다. 하지만 "사람 나이"는 아무리 길게 잡아도 몇 백을 넘기기 어렵다. 이런 경우 과도하게 큰 타입을 선택하면 다음과 같은 문제가 생긴다.

따라서 각 속성의 의미와 범위에 맞는 최소한의 타입을 선택해야 한다.

4-2. 문자 타입: CHAR vs VARCHAR

문자열을 저장할 때 주로 다음 두 타입을 고민한다.

일반적인 웹 서비스에서는 대부분의 문자열 컬럼을 VARCHAR로 두고, 완전히 고정 길이인 코드값만 CHAR로 두는 경우가 많다.

또한 문자 타입을 정할 때는 다음을 함께 고려한다.

4-3. 숫자 타입: 정수·실수·금액

정수 타입은 대략 다음과 같이 구분된다.

각 타입마다 표현 가능한 범위가 다르며, 범위가 클수록 저장 공간도 커진다. 예를 들어: