Cos'è un UUID e come funziona
UUID (Universally Unique Identifier) è un formato standardizzato di identificatore a 128 bit, definito nella RFC 9562 (precedentemente RFC 4122). L'idea principale è la possibilità di generare identificatori univoci su qualsiasi dispositivo, in qualsiasi momento, senza la necessità di verificarne l'unicità tramite un server centrale.
Formato di scrittura
L'UUID si scrive come 32 caratteri esadecimali, separati da quattro trattini in cinque gruppi: 8-4-4-4-12. Ad esempio: 550e8400-e29b-41d4-a716-446655440000. Il carattere alla posizione 13 indica la versione (1–7), mentre il primo carattere del quarto gruppo determina la variante (8, 9, a o b per l'UUID standard).
Perché UUID v4 è il più diffuso
UUID v4 utilizza un generatore di numeri casuali crittograficamente sicuro (CSPRNG). Dei 128 bit, 6 sono riservati per la versione e la variante, lasciando 122 bit di entropia. Questo dà 5,3 × 10^36 combinazioni possibili. UUID v4 non è legato al tempo o all'hardware, garantendo il completo anonimato della generazione.
UUID nei database
L'uso di UUID come chiave primaria offre vantaggi: unione sicura di dati da fonti diverse, possibilità di generare ID sul client senza interrogare il database, assenza di informazioni sull'ordine di creazione dei record. Svantaggi: dimensione maggiore (16 byte contro 4–8 per INT), frammentazione dell'indice per v4. UUID v7 risolve il problema della frammentazione grazie al prefisso temporale.
UUID v7 — il nuovo standard
UUID v7, standardizzato nella RFC 9562 (2024), combina i vantaggi di UUID v1 (ordinamento temporale) e v4 (casualità). I primi 48 bit sono un timestamp Unix in millisecondi, il resto è casuale. Questo rende v7 ideale come chiave primaria nei database dove è importante la sequenzialità degli inserimenti.