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 부터 지원