데이터베이스를 설계할 때 가장 중요한 것 중 하나는 적절한 데이터 타입을 선택하는 거예요. MySQL에서 숫자를 다룰 때 주로 사용하는 INT, DECIMAL, BIGINT에 대해 알아볼게요. 이 MySQL 데이터 범위 대해 알아두면 데이터를 효율적으로 저장하고 관리할 수 있어요.
목차
- INT: 일반적인 정수 처리의 주역
- DECIMAL: 정확한 소수점 계산이 필요할 때
- BIGINT: 아주 큰 숫자를 다룰 때
- 데이터 타입 선택 가이드
- 성능과 저장 공간 최적화 팁
본론
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. 데이터 타입 선택 가이드
데이터 타입을 선택할 때는 다음과 같은 기준을 고려해보세요.
- 데이터의 범위
- 정확도 요구사항
- 저장 공간 효율성
- 연산 속도
상황 | 추천 데이터 타입 |
---|---|
일반적인 정수 | INT |
정확한 소수점 계산 | DECIMAL |
아주 큰 정수 | BIGINT |
작은 범위의 정수 | TINYINT 또는 SMALLINT |
5. 성능과 저장 공간 최적화 팁
- 필요 이상으로 큰 데이터 타입을 사용하지 마세요. 예를 들어, 나이를 저장할 때는 TINYINT UNSIGNED로 충분해요.
- DECIMAL을 사용할 때는 꼭 필요한 자릿수만 지정하세요. 불필요하게 큰 DECIMAL은 저장 공간을 낭비해요.
- 자주 조회하는 컬럼에는 인덱스를 사용하세요. 하지만 너무 많은 인덱스는 오히려 성능을 떨어뜨릴 수 있어요.
- UNSIGNED 옵션을 활용하세요. 음수가 필요 없다면 UNSIGNED를 사용해 양수 범위를 두 배로 늘릴 수 있어요.
- 데이터의 성장을 고려하세요. 처음에는 INT로 충분해 보여도, 미래에 BIGINT가 필요할 수 있어요.
결론
지금까지 MySQL 데이터 범위 INT, DECIMAL, BIGINT 대해 알아보았습니다. MySQL에서 INT, DECIMAL, BIGINT는 각각 다른 용도로 사용돼요. INT는 일반적인 정수에, DECIMAL은 정확한 소수점 계산에, BIGINT는 아주 큰 숫자에 적합해요. 데이터의 특성을 잘 파악하고 적절한 타입을 선택하면 데이터베이스의 성능과 효율성을 크게 높일 수 있어요.
데이터베이스 설계는 처음부터 신중하게 해야 해요. 나중에 데이터 타입을 변경하는 것은 많은 시간과 비용이 들 수 있기 때문이에요. 하지만 너무 걱정하지 마세요. 경험이 쌓이면 자연스럽게 좋은 선택을 할 수 있게 될 거예요.
마지막으로, MySQL의 공식 문서를 참고하는 것도 좋은 방법이에요. 새로운 버전이 나올 때마다 데이터 타입의 특성이 조금씩 변할 수 있으니까요. 항상 최신 정보를 확인하는 습관을 들이면 좋아요.
함께 보면 좋은 글
- MySQL InnoDB 엔진: 데이터베이스 성능의 핵심
- MySQL EXPLAIN 쿼리 성능 최적화 핵심 도구
- MySQL 데이터 타입 완벽 가이드: INT, DECIMAL, BIGINT 범위와 특징
- MySQL 효율적인 SQL 작성 3가지 방법
- MySQL 스토리지 엔진 종류 및 특징
- MySQL InnoDB 엔진: 강력한 성능과 안정성의 비밀
- MySQL EXPLAIN 쿼리 최적화 비밀 열쇠
- MySQL 데이터 타입 및 최적의 선택 방법 3가지
- MySQL 아키텍처 및 관련 파라미터
- MySQL Explain 실행계획 사용법 및 분석