Verteilte Datenbanken und Microservices erfordern Primärschlüssel, die autonom auf beliebigen Servern ohne zentralen Zähler erzeugt werden können. Der weltweite Standard hierfür ist der UUID (Universally Unique Identifier).
1. Struktur des 128-Bit-UUID
Gemäß RFC 9562 besteht ein UUID aus 16 Oktetten (128 Bits), dargestellt als 32 Hexadezimalzeichen in fünf Blöcken mit Bindestrichen:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx2. Kollisionsmathematik & Sicherheit
Mit 122 Bits Entropie bei UUID v4 (ca. 5,3 × 10^36 Möglichkeiten) müsste man 85 Jahre lang jede Sekunde 1 Milliarde UUIDs generieren, um eine 50-prozentige Kollisionschance zu erreichen.
3. UUID v4 (Zufällig) vs UUID v7 (Zeitlich sortiert)
Während UUID v4 rein zufällig ist, bettet UUID v7 einen 48-Bit-Unix-Millisekunden-Zeitstempel in den höchstwertigen Bits ein, was eine natürliche zeitliche Sortierung ermöglicht.
4. Datenbank-Indexierung & B-Tree-Fragmentierung
Zufällige UUID-v4-Schlüssel verursachen in B-Tree-Indizes starke Seitenfragmentierung. UUID v7 schreibt sequentiell am Indexende und beschleunigt Schreibvorgänge in PostgreSQL und MySQL um bis zu das Zehnfache.