분산 시스템에서는 Id 값을 auto_increment 속성으로 사용하기 애매할 수 있는 상황이 생길 수 있다. 이런 문제를 해결하기 위해서 유일한 Id값을 설정해줄 수 있는 방법을 고려해야 한다.
분산 시스템에서 유일성이 보장되는 ID를 만드는 방법은 여러 가지가 존재한다.
4가지의 방법을 알아본다.

이 접근법은 데이터베이스의 auto_increment 기능을 활용하는 방법이다. 하지만 정확히 auto_increment랑은 동일하지 않다. ID의 값을 1만큼 증가시키는 것이 아니라 k만큼 증가시킨다. 여기서 k는 현재 DB의 수만큼 증가시킨다.
UUID는 유일성이 보장되는 ID를 만드는 하나의 간단한 방법이다. 컴퓨터 시스템에 저장되는 정보를 유일하게 식별하기 위한 128비트짜리 수이다. UUID를 사용하면 각 DB당 독립적인 ID를 만들 수 있다.
장점
단점
타겟 서버는 유일성이 보장되는 ID를 만들어 낼 수 있는 하나의 방법이다. 플리커(Flickr)는 분산 기본 키를 만들어 내기 위해 이 기술을 이용했다.

auto_increment 기능을 갖춘 데이터베이스 서버, 즉 타겟 서버를 중앙 집중형으로 하나만 사용하는 것이다.
장점
단점
트위터에서는 스노플레이크라고 불리는 독창적인 ID 생성 기법을 사용하였다. ID를 바로 생성하는 대신 분할정복을 먼저 적용해야 한다. 생성해야 하는 ID의 구조를 여러 절로 분할하는 것이다.

사인 비트 : 1비트를 할당, 음수와 양수를 구별하는 데 사용할 수 있음
타임스탬프 : 41비트를 할당, 기원 시각 이후로 몇밀리초가 경과했는지 나태내준다.
데이터센터 ID : 5비트를 할당, 32개의 데이터센터를 지원가능
서버ID : 5비트를 할당, 따라서 데이터센터당 32개 서버를 사용 가능
일련번호 : 12비트를 할당, 각 서버에서는 ID를 생성할 때마다 일련번호를 1만큼 증가시킨다.
데이터센터 ID와 서버 ID는 시스템이 시작할 때 결정되며, 일반적으로 시스템 운영 중에는 바뀌지 않는 특성이 있다. 타임스탬프는 가장 중요한 41비트를 차지하고 있다. 시간의 흐름에 따라 점점 큰 값을 갖게 되므로 결국 ID값으로 시간순으로 정렬을 가능하게 해준다. 일련번호는 12비트이므로 어떤 서버가 같은 밀리초 동안 하나 이상의 ID를 만들어 낸 경우에만 0보다 큰 값을 갖게 한다.