UUID-Versionen im Detail
Verschiedene UUID-Versionen dienen verschiedenen Zwecken. Diese Anleitung erklärt jede Version und hilft Ihnen, die richtige zu wählen.
Version 1 (Zeitbasiert)
UUID v1 kombiniert einen 60-Bit-Zeitstempel mit der 48-Bit-MAC-Adresse des Knotens. Der Zeitstempel zählt 100-Nanosekunden-Intervalle seit dem 15. Oktober 1582 (Gregorianische Kalenderreform). Vorteile: Garantiert Eindeutigkeit (keine zwei Maschinen haben gleiche MAC + Zeit). Enthält Erstellungszeitstempel (kann extrahiert werden). Grob geordnet nach Erstellungszeit. Nachteile: Enthüllt MAC-Adresse, was ein Datenschutzproblem sein kann. Enthüllt Erstellungszeit. Koordiniert auf der gleichen Maschine kann bei sehr hoher Frequenz Probleme verursachen. Anwendungsfall: Wenn Sie nachverfolgbare, einzigartige IDs brauchen und Datenschutz kein Anliegen ist. Selten in modernen Webanwendungen, aber manchmal in Unternehmenssystemen gesehen.
Version 4 (Zufällig)
UUID v4 generiert 122 zufällige Bits (6 Bits sind für Versions- und Variantenfelder reserviert). Keine Zeitstempel, kein Maschinen-Identifier – reine Zufälligkeit. Vorteile: Maximale Privatsphäre (keine Informationen über Quelle oder Zeit). Einfach zu implementieren mit jedem Zufallszahlengenerator. Kein zentraler Koordinationsbedarf. Nachteile: Nicht zeitlich geordnet (Datenbank-Inserts können fragmentieren). Theoretisches Kollisionsrisiko (praktisch Null). Keine Zeitstempelinformation extrahierbar. Die Kollisionswahrscheinlichkeit wird oft missverstanden. Mit 122 zufälligen Bits, um eine 50%ige Chance auf eine Kollision zu erreichen, müssten Sie ungefähr 2,71 × 10^18 UUIDs generieren. Wenn Sie eine Milliarde UUIDs pro Sekunde generieren, würde es 85 Jahre dauern, bis Sie 50%ige Kollisionswahrscheinlichkeit erreichen. Anwendungsfall: Allzweck-Identifier. Es sei denn, Sie haben spezifische Anforderungen für Zeitreihenfolge oder deterministische Generierung, verwenden Sie v4.
Versionen 3 und 5 (Namensbasiert)
Diese Versionen erstellen deterministische UUIDs aus einem Namespace und Namen. V3 verwendet MD5-Hashing; V5 verwendet SHA-1. Gleiche Namespace + Name = Gleiche UUID immer. Namespaces sind selbst UUIDs. Standardisierte Namespaces existieren für DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URLs (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OIDs und X.500-Namen. Beispiel: UUIDv5 von Namespace=DNS-Namespace, Name="example.com" ergibt immer: cfbff0d1-9375-5685-968c-48ce8b15ae17. Anwendungsfälle: Erstellen konsistenter IDs aus Geschäftsidentifier. Generieren reproduzierbarer IDs aus natürlichen Schlüsseln. Migrieren zwischen ID-Schemata bei gleichzeitiger Wahrung von Referenzen. Wählen Sie v5 über v3 für neue Anwendungen – SHA-1 ist robuster als MD5, obwohl beide für diesen Zweck funktionieren.
Neuere Versionen (v6, v7, v8)
UUIDv7 gewinnt an Popularität. Es kombiniert Unix-Zeitstempel-Millisekunden mit Zufallsbits. UUIDs sortieren chronologisch. Datenbank-Indizes profitieren von sequentiellen Inserts. Grob geordnet nach Zeit, während sie zufällig genug für Eindeutigkeit bleiben. UUIDv6 ordnet v1-Felder für Sortierbarkeit um. Weniger verbreitet als v7, aber addressiert v1s Sortierungsprobleme. UUIDv8 erlaubt benutzerdefinierte Formate innerhalb der UUID-Struktur. Für spezialisierte Bedürfnisse, die in Standard-Versionen nicht abgedeckt sind. Für neue Projekte, die Datenbank-Primärschlüssel brauchen, erwägen Sie UUIDv7 wenn Sortierbarkeit wichtig ist. Ansonsten ist v4 bewährt und überall unterstützt.
Tool ausprobieren
UUID Generator