Auto Increment 와 UUID 각각의 이점에 대하여
Summary
Primary Key
관계형 데이터베이스에서 레코드의 식별자로 이용하기에 가장 적합한 것을 테이블마다 선택, 정의된 후보 키를 말한다
Primary Key 의 종류
-
Nature Key
자연 키는 이미 자연스럽게 주어지는 키로써, 휴대폰 번호, 주민등록번호 등이 있다.
-
Artificial Key
인조 키는 인위적으로 생성한 키로써 테이블 자체의 고유한 식별자에 해당하는 값이 없거나 해당 값이 너무 길어서 사용하기 적절하지 않을 때 사용할 수 있다.
이 인조키 생성 방식의 종류로 Auto Increment 와 UUID 가 있다. 각각의 이점은 다음과 같다.
1. Auto Increment 방식의 장점
-
1-1. 메모리를 덜 차지한다.
-
1-2. 클러스터 인덱스 기반의 정렬 수행 시 UUID 에 비해 performance 가 높다.
-
1-3. UUID 에 비해 직관적이다. 예를 들어, (1, 2, 3, 4, 5) (ab123e, ac9dp, cb192, cf375) 이렇게 두 가지 형태로 데이터가 있을 때 전자가 정렬되어 있다는 것을 훨씬 더 직관적으로 알아챌 수 있다.
1-2. 정수 타입 비교 vs 문자열 비교 실제 성능 측정
2. UUID 방식의 장점
-
2-1. Auto Increment 방식에 비해 분산된 환경 (예를 들어, 물리적으로 분리된 두 개의 데이터베이스 서버) 에 테이블을 저장하는 것이 용이하다.
-
2-2. 데이터베이스 환경에 독립적이다. Auto Increment 방식의 경우 해당 기능을 제공하지 않는 db 로 이전하는 데에 어려움이 있겠으나
UUID 는 훨씬 더 범용적이다 -
2-3. 투명성이 보장된다. Auto Increment 방식의 키와 달리 실제 키 값을 유추하기 힘들다.
참고 자료