PK 타입을 생각해보자

 

int (4바이트)  vs  bigint (8바이트)

  • id 값이 약 43억이 넘어가는 아주 큰 DB -> bigint형 사용
  • 약 43억 이하의 DB -> int형이 효율적
    • int형은 bigint형에 비해 약 10% 이상의 디스크 용량 절약 가능
  • 향후 규모가 커질 경우? bigint형 사용
    • 대량의 데이터를 int형에서 bigint형으로 바꾸는데 많은 시간이 걸림

 

auto increment  vs  UUID(Universally unique id)

  • auto increment는 키를 예측하기 쉬움
    • SQL Injection과 같은 공격에 취약
  • 여러 DB가 있는 분산환경
    • 동기화가 되어있지 않다면 duplicate key 발생 확률이 높음
  • UUID를 사용하자
    • UUID 생성으로 인해 insert 할 때 시간이 더 많이 걸림
    • 128비트 데이터로 충동 가능성이 굉장히 낮음
    • 자바 5 부터 지원

+ Recent posts