Postgres INT4 vs UUID join 성능 비교

SeongJun·2020년 9월 10일
0

지금 설계하고 있는 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개의 댓글