AG UUID

UUID vs. automatisch inkrementierende Integer als Primärschlüssel

Ein Vergleich zwischen UUID und automatisch inkrementierenden Integern als Primärschlüssel einer Datenbank.

Automatisch inkrementierende Integer

Sie sind kurz, schnell und bieten eine gute Indexlokalität. Allerdings lassen sich mehrere Datenbanken nur schwer zusammenführen, die laufende Nummer verrät die Gesamtzahl der Datensätze, und die Anwendung kann IDs kaum im Voraus oder verteilt erzeugen.

UUID

In verteilten Umgebungen kann jede Instanz kollisionsfrei eigene Werte erzeugen, und die Werte sind schwer vorhersehbar. Dafür sind sie mit 128 Bit größer als Integer, und zufällige v4-Werte werden verstreut in den Index eingefügt, was die Schreibleistung beeinträchtigen kann.

Auswahlkriterien

Für ein internes System mit einer einzigen Datenbank sind Integer einfach und effizient. Wenn verteilte Systeme, öffentliche APIs oder das Zusammenführen mehrerer Quellen nötig sind, ist UUID von Vorteil, insbesondere das zeitlich sortierbare v7. Ein häufiger Kompromiss ist, einen internen Integer-PK und eine nach außen sichtbare UUID gemeinsam vorzuhalten.