본문 바로가기

IT/DB

데이터 타입 int, bigint 차이

728x90
반응형

 

 

 

int와 bigint는 정수 값을 저장하기 위한 데이터 타입으로, 주로 데이터베이스나 프로그래밍 언어에서 사용됩니다.

 

이 두 데이터 타입의 주요 차이는 저장할 수 있는 값의 범위와 메모리 사용량에 있습니다.


1. int (Integer)

  • 범위:
    • Signed(기본): -2,147,483,648 ~ 2,147,483,647
    • Unsigned(일부 DB 지원): 0 ~ 4,294,967,295
  • 크기: 4 바이트 (32비트)
  • 용도:
    • 값이 비교적 작은 정수(수천만 단위까지)를 처리할 때 사용.
    • 일반적으로 ID, 카운트, 상태 플래그 등 크기가 크지 않은 숫자 데이터에 적합.

2. bigint (Big Integer)

  • 범위:
    • Signed: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    • Unsigned(일부 DB 지원): 0 ~ 18,446,744,073,709,551,615
  • 크기: 8 바이트 (64비트)
  • 용도:
    • 매우 큰 정수를 다룰 때 사용 (예: 빅데이터, 대형 금융 시스템, 초대형 ID).
    • 값이 32비트 범위를 초과할 가능성이 있는 데이터(대형 데이터셋의 기본 키 등) 처리.

주요 차이점 비교

특성 int bigint
범위 약 ±21억 약 ±9경
크기 4 바이트 8 바이트
성능 더 빠르고 메모리 효율적 더 느리고 메모리 소비가 큼
사용 사례 작은 정수 값 큰 정수 값

3. 선택 기준

  • int를 선택할 때:
    • 데이터가 21억을 초과하지 않는다면 int를 사용.
    • 저장 공간과 성능 최적화가 필요할 경우 적합.
  • bigint를 선택할 때:
    • 값이 21억을 초과할 가능성이 있다면 반드시 bigint를 사용.
    • 초대형 데이터베이스나 고유 키(ID)가 빠르게 증가하는 시스템에서 유용.

 

예제 (SQL Server 기준)

int 예제

CREATE TABLE SmallTable ( ID INT PRIMARY KEY, Value INT );
  • 32비트 정수 값으로 충분한 경우.

bigint 예제

CREATE TABLE LargeTable ( ID BIGINT PRIMARY KEY, LargeValue BIGINT );
  • 32비트 범위를 초과할 가능성이 있는 경우.

4. 주의사항

  • 빅데이터 처리: 데이터가 클수록 메모리 사용량과 처리 시간이 증가하므로 bigint는 필요한 경우에만 사용.
  • 데이터 타입 변환: int에서 bigint로 변환하면 크기가 커지고, 반대 변환 시 값 손실 가능.

요약

  • int: 일반적인 경우 사용
  • bigint: 매우 큰 숫자를 처리해야 할 때 사용

 

728x90
반응형