Czym jest UUID i jak działa
UUID (Universally Unique Identifier) to standardowy format 128-bitowego identyfikatora zdefiniowany w RFC 9562 (wcześniej RFC 4122). Główna idea polega na możliwości generowania unikalnych identyfikatorów na dowolnym urządzeniu, w dowolnym momencie, bez konieczności weryfikacji unikalności przez centralny serwer.
Format zapisu
UUID zapisywany jest jako 32 znaki szesnastkowe rozdzielone czterema myślnikami na pięć grup: 8-4-4-4-12. Na przykład: 550e8400-e29b-41d4-a716-446655440000. Znak na pozycji 13 wskazuje wersję (1–7), a pierwszy znak czwartej grupy określa wariant (8, 9, a lub b dla standardowego UUID).
Dlaczego UUID v4 jest najpopularniejszy
UUID v4 wykorzystuje kryptograficznie bezpieczny generator liczb losowych (CSPRNG). Z 128 bitów, 6 jest zarezerwowanych na wersję i wariant, pozostawiając 122 bity entropii. Daje to 5,3 × 10^36 możliwych kombinacji. UUID v4 nie jest powiązany z czasem ani sprzętem, co zapewnia pełną anonimowość generowania.
UUID w bazach danych
Użycie UUID jako klucza głównego ma zalety: bezpieczne łączenie danych z różnych źródeł, możliwość generowania ID po stronie klienta bez zapytania do bazy, brak informacji o kolejności tworzenia rekordów. Wady: większy rozmiar (16 bajtów wobec 4–8 dla INT), fragmentacja indeksu dla v4. UUID v7 rozwiązuje problem fragmentacji dzięki prefiksowi czasowemu.
UUID v7 — nowy standard
UUID v7, standaryzowany w RFC 9562 (2024), łączy zalety UUID v1 (sortowanie chronologiczne) i v4 (losowość). Pierwsze 48 bitów to znacznik czasu Unix w milisekundach, reszta jest losowa. Sprawia to, że v7 jest idealny jako klucz główny w bazach danych, gdzie ważna jest kolejność wstawiania.