Postgres INT4 vs UUID join 성능 비교

SeongJun·2020년 9월 10일

지금 설계하고 있는 DB구조의 Primary key와 foreign key를 serial로 할지, uuid로 할지 고민중에 둘의 join 성능을 비교한 글이 있어서 기록해둔다.

참고 : https://www.cybertec-postgresql.com/en/int4-vs-int8-vs-uuid-vs-numeric-performance-on-bigger-joins/

테스트 환경

  • 5,000,000개의 데이터
  • Int4, Int8, Numeric, uuid 타입을 비교
  • Join benchmark는 1000번 반복 결과
  • Index building benchmark는 100번 반복 결과
  • Ubuntu 14.04, Postgres 9.6.2 기준
  • Table은 timestamp field 2개 + text field 2개 + integer field 2개 + 각 비교 타입 으로 a, b 테이블을 만들어 두 테이블을 join하는 식으로 테스트

결과

DatatypeJOIN mean time 5m rows (s)% diff. to smallestIndex Size (MB)% diff. to smallest
int42.72107
int82.95+8 %107
numeric3.65+34 %107
uuid3.07+13 %150+40 %

결론

uuid 를 썼을때 int4 (serial) 과 거의 차이가 안난다.
성능보다는 사용성에 주의해서 어떤 타입을 쓸지 결정하면 될듯

profile
풀스택 개발자 + 인공지능 대학원

0개의 댓글