alltools.one
Development‱
2025-07-03
‱
7 min
‱
alltools.one Team
UUIDIdentifierDatabaseAPIDevelopment

UUID-Leitfaden: Versionen, Formate und Best Practices

UUIDs (Universally Unique Identifiers) sind 128-Bit-Identifikatoren, die so konzipiert sind, dass sie ĂŒber Raum und Zeit hinweg eindeutig sind — ohne eine zentrale AutoritĂ€t. Sie sind die Standardwahl fĂŒr verteilte Systeme, in denen das unabhĂ€ngige Generieren von IDs — ohne Koordination — unerlĂ€sslich ist.

UUID-Format

Eine UUID ist eine 128-Bit-Zahl, dargestellt als 32 Hexadezimalziffern in fĂŒnf Gruppen, getrennt durch Bindestriche:

550e8400-e29b-41d4-a716-446655440000
^^^^^^^^ ^^^^ ^^^^ ^^^^ ^^^^^^^^^^^^
time-low  mid  hi   clk   node
              +ver  +var
  • Gesamt: 128 Bit (16 Bytes)
  • ZeichenkettenlĂ€nge: 36 Zeichen (32 Hex + 4 Bindestriche)
  • Version: Kodiert im 13. Zeichen (das „hi"-Nibble)
  • Variante: Kodiert im 17. Zeichen

Generieren Sie UUIDs sofort mit unserem UUID-Generator.

UUID-Versionen

UUID v1: Zeitbasiert

Generiert aus dem aktuellen Zeitstempel und der MAC-Adresse des Rechners.

// Struktur: Zeitstempel (60 Bit) + Taktsequenz (14 Bit) + Knoten (48 Bit)
6ba7b810-9dad-11d1-80b4-00c04fd430c8

Vorteile: NatĂŒrlich nach Erstellungszeit sortierbar, garantierte Eindeutigkeit pro Maschine. Nachteile: Gibt MAC-Adresse preis (Datenschutzbedenken), kann Erstellungszeit verraten. Verwenden wenn: Sie Zeitreihenfolge benötigen und sich in einer kontrollierten Umgebung befinden.

UUID v4: ZufÀllig

Generiert aus kryptografisch sicheren Zufallszahlen. Dies ist die am hÀufigsten verwendete Version.

// 122 zufĂ€llige Bits (6 Bits reserviert fĂŒr Version und Variante)
f47ac10b-58cc-4372-a567-0e02b2c3d479

Vorteile: Einfach, keine Informationspreisgabe, keine Koordination erforderlich. Nachteile: Nicht sortierbar, etwas schlechtere Datenbank-Indexleistung als sequentielle IDs. Verwenden wenn: Allgemeiner Einsatz — dies ist die Standardwahl fĂŒr die meisten Anwendungen.

UUID v7: Zeitgeordnet ZufÀllig (Neuer Standard)

Die neueste Version (RFC 9562, 2024), die einen Unix-Zeitstempel mit Zufallsdaten kombiniert.

// Struktur: Zeitstempel (48 Bit) + Zufall (74 Bit)
018e7b50-4a00-7000-8000-000000000001

Vorteile: NatĂŒrlich zeitsortiert, hervorragende Datenbank-Indexleistung, keine Informationspreisgabe ĂŒber Millisekunden-PrĂ€zision hinaus. Nachteile: Neuer, einige Bibliotheken unterstĂŒtzen es möglicherweise noch nicht. Verwenden wenn: Sie eindeutige IDs benötigen, die chronologisch sortieren — ideal fĂŒr Datenbank-PrimĂ€rschlĂŒssel.

Weitere Versionen

  • UUID v3: MD5-Hash eines Namensraums und Namens. Deterministisch.
  • UUID v5: SHA-1-Hash eines Namensraums und Namens. Deterministisch und gegenĂŒber v3 bevorzugt.
  • UUID v6: Umgeordnete v1 fĂŒr bessere Sortierbarkeit. Von v7 abgelöst.
  • Nil UUID: Alles Nullen (00000000-0000-0000-0000-000000000000). Wird als Sentinel-Wert verwendet.

Kollisionswahrscheinlichkeit

Wie wahrscheinlich ist es, dass zwei zufÀllig generierte UUIDs (v4) kollidieren? Mit 122 zufÀlligen Bits:

  • Nach Generierung von 1 Milliarde UUIDs: Wahrscheinlichkeit ≈ 1 zu 10^18
  • FĂŒr eine 50%ige Kollisionswahrscheinlichkeit: benötigen Sie etwa 2,7 × 10^18 UUIDs
  • Bei 1 Milliarde UUIDs pro Sekunde: wĂŒrde es etwa 86 Jahre dauern

FĂŒr alle praktischen Zwecke werden UUID-v4-Kollisionen nicht auftreten. Ein Hardwareausfall ist weitaus wahrscheinlicher.

UUID vs. andere ID-Formate

FormatLĂ€ngeSortierbarEindeutigURL-sicher
UUID v436 ZeichenNeinJaJa
UUID v736 ZeichenJaJaJa
ULID26 ZeichenJaJaJa
nanoid21 ZeichenNeinWahrscheinlichJa
Auto-IncrementVariabelJaPro TabelleJa
Snowflake ID18-19 ZeichenJaPro SystemJa

ULID (Universally Unique Lexicographically Sortable Identifier)

ULIDs sind eine kompakte Alternative: 48-Bit-Zeitstempel + 80-Bit-Zufall, kodiert als 26 Crockford Base32 Zeichen. Sie sortieren lexikografisch nach Erstellungszeit.

Wann Auto-Increment-IDs verwenden

Sequentielle IDs sind einfacher und effizienter fĂŒr Einzeldatenbank-Anwendungen. Verwenden Sie UUIDs, wenn Sie:

  • IDs benötigen, die von mehreren Systemen unabhĂ€ngig generiert werden
  • IDs, die externen Benutzern nicht die EinfĂŒgereihenfolge verraten
  • Merge-freundliche IDs fĂŒr verteilte Datenbanken

Datenbank-LeistungsĂŒberlegungen

ZufĂ€llige UUIDs (v4) verursachen B-Tree-Index-Fragmentierung, weil EinfĂŒgungen an zufĂ€lligen Positionen erfolgen. Dies kann die Schreibleistung bei großen Tabellen um das 2-5-fache im Vergleich zu sequentiellen IDs verschlechtern.

Lösungen:

  1. UUID v7 verwenden: Zeitgeordnete UUIDs werden sequentiell eingefĂŒgt, entsprechend der Auto-Increment-Leistung
  2. Als BinÀr speichern: BINARY(16) statt CHAR(36) verwenden, um 55% Speicher zu sparen
  3. ULID verwenden: Sortierbar und kompakter als UUIDs
-- PostgreSQL: nativer UUID-Typ (16 Bytes, effizient)
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name TEXT NOT NULL
);

-- MySQL: als BINARY(16) speichern fĂŒr Leistung
CREATE TABLE users (
  id BINARY(16) PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

UUIDs generieren

Kommandozeile

# macOS/Linux
uuidgen

# Python Einzeiler
python3 -c "import uuid; print(uuid.uuid4())"

JavaScript

// Eingebaut (Node.js 19+, moderne Browser)
crypto.randomUUID();

// FĂŒr UUID v7 (mit uuid-Paket)
import { v7 } from 'uuid';
const id = v7();

Python

import uuid
uuid.uuid4()  # ZufÀllig
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com')  # Namensbasiert

FĂŒr schnelle Generierung ohne Code erstellt unser UUID-Generator sofort v4-UUIDs in Ihrem Browser.

FAQ

Sollte ich UUID oder Auto-Increment-Ganzzahl fĂŒr meinen Datenbank-PrimĂ€rschlĂŒssel verwenden?

FĂŒr Einzeldatenbank-Anwendungen sind Auto-Increment-Ganzzahlen einfacher und schneller. FĂŒr verteilte Systeme, Microservices oder wenn Sie IDs clientseitig vor dem DatenbankeinfĂŒgen generieren mĂŒssen, sind UUIDs (vorzugsweise v7) die bessere Wahl. Wenn Sie PostgreSQL verwenden, macht die native UUID-UnterstĂŒtzung den Leistungsunterschied vernachlĂ€ssigbar.

Können UUIDs als Sicherheitstokens verwendet werden?

UUID v4 verwendet 122 Bit ZufĂ€lligkeit aus einer kryptografischen Quelle, was gute Entropie bietet. FĂŒr Sicherheitstokens (API-SchlĂŒssel, Sitzungs-IDs) ist es jedoch besser, zweckgebundene Token-Formate mit zusĂ€tzlichen Eigenschaften wie PrĂŒfsummen, Ablaufitkodierung oder PrĂ€fix-Identifikation zu verwenden. UUIDs sind fĂŒr IdentitĂ€t, nicht fĂŒr Authentifizierung.

Verwandte Ressourcen

Published on 2025-07-03
UUID Guide: Versions, Formats, and Best Practices | alltools.one