요약
- uuid를 pk로 사용하는 건 확장성과 유연성 측면에서는 이점을 갖지만, 성능과 저장공간 관련되어 고민해야함
본문
- 고려 해야하는 점
- 성능 저하
- uuid는 128 비트로 정수형 id에 비해 훨씬 큼, 이로 인해 인덱스 크기가 커지고, 디스크 공간 사용량 증가
- 인덱스 프래그멘테이션
- uuid가 순차적이지 않아서, 데이터 삽입시 인덱스 리밸런싱이 빈번하게 발생함
- 레플리케이션
- 레플리케이션 환경에서는 유용할 수 있지만, 파티셔닝 전략을 수립할 때 비순차적인 특성으로 고려해야하는 사항이 있음
- 성능 저하
- 해결 방법
- uuid의 순차적인 버전 uuidv1, mysql uuid_short() 함수를 사용하는 것
- mysql uuid_short는 int64의 random한 숫자를 반환하는 함수
- uuid의 순차적인 버전 uuidv1, mysql uuid_short() 함수를 사용하는 것