Zettelkasten

UUID를 pk로 사용할 때 고려해야하는 점

·수정 2026.04.23·수정 2

요약

  • uuid를 pk로 사용하는 건 확장성과 유연성 측면에서는 이점을 갖지만, 성능과 저장공간 관련되어 고민해야함

본문

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