Surrogate Key Strategy

분산 환경의 키는 유일성, 생성 위치, 정렬성을 함께 고려한다

AUTO_INCREMENT는 단순하고, UUID v4는 독립 생성에 강합니다. 시간 기반 ID는 생성 시각을 앞쪽에 두어 정렬성과 분산 생성을 함께 노립니다.

time prefix + collision guard + randomness/sequence
Time 앞부분에 생성 시각을 둔다 문자열 또는 숫자 정렬만 해도 대략 생성 순서가 맞습니다.
Guard 동시 생성 충돌을 줄인다 Snowflake는 worker/sequence, ULID는 randomness로 충돌을 낮춥니다.
Index 인덱스 지역성을 개선한다 완전 랜덤 UUID보다 새 값이 가까운 위치에 들어가기 쉽습니다.
AUTO_INCREMENT

단일 DB에서는 빠르고 단순하지만, 여러 노드가 독립 생성하기 어렵습니다.

단순 중앙 의존
UUID v4

어디서든 만들 수 있지만 랜덤성이 커서 시간순 정렬과 인덱스 지역성이 약합니다.

분산 생성 무작위
ULID / Snowflake / UUIDv7

시간 정보를 포함해 분산 생성과 정렬성을 절충하는 선택지입니다.

시간순 분산 친화
핵심: 기본키는 중복되지 않는 값이면 끝이 아닙니다. 생성 방식, 정렬 패턴, 인덱스 비용, 외부 노출 가능성까지 함께 봐야 합니다.