RDB 관점에서 UUID 의 단점

Bonjugi·2022년 11월 26일
0
post-custom-banner

MySQL 을 사용하고 있는데, UUID 를 사용하면서 성능이슈를 겪은바 있다.
조회 할때도, 조인 할때도 성능이 좋지 않았다. (다른 RDBMS 는 다른결과일수 있다.)
정확히 어떤 시나리오였는지는 기억이 나지 않지만 "이래서 uuid 쓰겠나" 싶을 정도로 처참하게 느렸었다.

왜 이런지 접근해보려면, UUID는 단점부터 정리해 보자.

  1. 상대적으로 큰 크기 (36byte. bigint 는 8byte)
  2. B-tree 인덱스 관점에서 우편향적이지 않고 랜덤 증가하면서 잦은 페이지 분할 및 재정렬 발생
  3. 이로 인한 낮은 버퍼 히트율 (disk, cpu, memory 모두 낭비가 심한편)

랜덤한 문자열이라는 특징이 보인다.
헌데 순차적인 UUID 있고, 실제로 확실한 성능개선이 있어 보인다는 포스팅을 발견했다.

https://developer111.tistory.com/83

현재는 인크리먼털한 id 와 UUID 를 별도의 unique 식별자로 두고 있는데, 잘하면 id 는 제거할수 있지 않을까?

post-custom-banner

0개의 댓글