MySQL 데이터 범위: INT, DECIMAL, BIGINT 완벽 가이드

데이터베이스를 설계할 때 가장 중요한 것 중 하나는 적절한 데이터 타입을 선택하는 거예요. MySQL에서 숫자를 다룰 때 주로 사용하는 INT, DECIMAL, BIGINT에 대해 알아볼게요. 이 MySQL 데이터 범위 대해 알아두면 데이터를 효율적으로 저장하고 관리할 수 있어요.

목차

  1. INT: 일반적인 정수 처리의 주역
  2. DECIMAL: 정확한 소수점 계산이 필요할 때
  3. BIGINT: 아주 큰 숫자를 다룰 때
  4. 데이터 타입 선택 가이드
  5. 성능과 저장 공간 최적화 팁

본론

1. INT: 일반적인 정수 처리의 주역

INT는 가장 많이 사용되는 정수 타입이에요. -21억부터 21억까지의 숫자를 저장할 수 있어요.

  • 범위: -2,147,483,648 ~ 2,147,483,647
  • 저장 공간: 4바이트

INT는 나이, 수량, 가격(소수점이 필요 없는 경우) 등을 저장할 때 좋아요.

CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    quantity INT
);

INT에는 UNSIGNED 옵션을 붙일 수 있어요. 이렇게 하면 음수는 저장할 수 없지만, 0부터 42억까지 저장할 수 있어요.

CREATE TABLE views (
    id INT PRIMARY KEY,
    page_views INT UNSIGNED
);

2. DECIMAL: 정확한 소수점 계산이 필요할 때

DECIMAL은 정확한 소수점 계산이 필요할 때 사용해요. 금융 거래나 과학적 계산에서 많이 쓰여요.

  • 형식: DECIMAL(M,D)
  • M: 전체 자릿수 (최대 65)
  • D: 소수점 이하 자릿수

예를 들어, DECIMAL(10,2)는 전체 10자리 중 소수점 이하 2자리를 가진 숫자를 저장할 수 있어요.

CREATE TABLE finances (
    id INT PRIMARY KEY,
    amount DECIMAL(10,2)
);

이렇게 하면 1234567.89 같은 숫자를 정확하게 저장할 수 있어요.

3. BIGINT: 아주 큰 숫자를 다룰 때

BIGINT는 INT보다 훨씬 큰 범위의 숫자를 저장할 수 있어요.

  • 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • 저장 공간: 8바이트

BIGINT는 주로 아주 큰 ID 값이나 로그 데이터를 저장할 때 사용해요.

CREATE TABLE big_data (
    id BIGINT PRIMARY KEY,
    timestamp BIGINT
);

4. 데이터 타입 선택 가이드

데이터 타입을 선택할 때는 다음과 같은 기준을 고려해보세요.

  1. 데이터의 범위
  2. 정확도 요구사항
  3. 저장 공간 효율성
  4. 연산 속도
상황추천 데이터 타입
일반적인 정수INT
정확한 소수점 계산DECIMAL
아주 큰 정수BIGINT
작은 범위의 정수TINYINT 또는 SMALLINT

5. 성능과 저장 공간 최적화 팁

  1. 필요 이상으로 큰 데이터 타입을 사용하지 마세요. 예를 들어, 나이를 저장할 때는 TINYINT UNSIGNED로 충분해요.
  2. DECIMAL을 사용할 때는 꼭 필요한 자릿수만 지정하세요. 불필요하게 큰 DECIMAL은 저장 공간을 낭비해요.
  3. 자주 조회하는 컬럼에는 인덱스를 사용하세요. 하지만 너무 많은 인덱스는 오히려 성능을 떨어뜨릴 수 있어요.
  4. UNSIGNED 옵션을 활용하세요. 음수가 필요 없다면 UNSIGNED를 사용해 양수 범위를 두 배로 늘릴 수 있어요.
  5. 데이터의 성장을 고려하세요. 처음에는 INT로 충분해 보여도, 미래에 BIGINT가 필요할 수 있어요.

결론

지금까지 MySQL 데이터 범위 INT, DECIMAL, BIGINT 대해 알아보았습니다. MySQL에서 INT, DECIMAL, BIGINT는 각각 다른 용도로 사용돼요. INT는 일반적인 정수에, DECIMAL은 정확한 소수점 계산에, BIGINT는 아주 큰 숫자에 적합해요. 데이터의 특성을 잘 파악하고 적절한 타입을 선택하면 데이터베이스의 성능과 효율성을 크게 높일 수 있어요.

데이터베이스 설계는 처음부터 신중하게 해야 해요. 나중에 데이터 타입을 변경하는 것은 많은 시간과 비용이 들 수 있기 때문이에요. 하지만 너무 걱정하지 마세요. 경험이 쌓이면 자연스럽게 좋은 선택을 할 수 있게 될 거예요.

마지막으로, MySQL의 공식 문서를 참고하는 것도 좋은 방법이에요. 새로운 버전이 나올 때마다 데이터 타입의 특성이 조금씩 변할 수 있으니까요. 항상 최신 정보를 확인하는 습관을 들이면 좋아요.

함께 보면 좋은 글