Unique ID로 UUID 많이들 즐겨 쓰시죠? 하지만!!! 고민없이 그냥 써버리면 예상치 못한 이슈들이 생길 수 있는데요. 주의를 해야하는 경우! 언제일까요?
- 완전 랜덤 UUID를 생성하면 삽입 순서와 ID 순서 간의 상관관계가 사라집니다.
- 랜덤 UUID를 기반으로 한 인덱스는 전체 인덱스를 캐시에 유지해야 하지만 순차적인 ID 기반 인덱스는 최근 페이지 몇 개만으로 충분합니다.
- 랜덤 UUID에는 데이터와 테이블에서의 순서 상의 상관관계가 없으며, 이는 중요한 문제가 될 수 있습니다.
- 인덱스 전용 스캔은 맵을 사용하여 효율적으로 작동할 수 있지만, 랜덤 UUID의 경우에는 추가적인 버퍼 조회가 필요하므로 성능 저하가 발생할 수 있습니다.
- 데이터의 근접성은 성능에 영향을 미칠 수 있으므로 순차 UUID와 같은 근접한 값을 사용하는 것이 좋습니다. (UUID v7 추천)
https://www.cybertec-postgresql.com/en/unexpected-downsides-of-uuid-keys-in-postgresql/