Che cos'è un UUID v6?
Un UUID v6 usa lo stesso timestamp da 60 bit del v1, ma lo colloca nei bit alti (big-endian), così l'ordine lessicografico delle stringhe segue l'ordine cronologico.
Diventa quindi adatto come chiave primaria: le righe nuove si accodano alla fine dell'indice invece di sparpagliarsi nell'albero, senza rinunciare ai bit casuali rimanenti.
Come si usa
- Indica quanti identificatori ti servono.
- Fai clic su Genera.
- Controlla che la lista salga in ordine: è il timestamp in azione.
Casi d'uso
- Chiavi primarie nei database relazionali.
- Registri di audit ed eventi interrogati per data.
- Sistemi che migrano dal v1 e vogliono mantenere quella struttura.
Le versioni UUID in breve
| Versione | Ordinabile | Basata su | Usala per |
|---|---|---|---|
| v1 | No | Timestamp + indirizzo MAC | Sistemi storici che si aspettano ancora il v1 |
| v3 | No | Hash MD5 di un nome | Identificatori deterministici quando MD5 è obbligatorio |
| v4 | No | 122 bit casuali | Quasi tutti gli identificatori di uso generale |
| v5 | No | Hash SHA-1 di un nome | Quando lo stesso nome deve dare sempre lo stesso ID |
| v6 | Sì | Timestamp riordinato | Identificatori ordinabili senza rinunciare al casuale |
| v7 | Sì | Tempo Unix in millisecondi | Chiavi primarie di database e ID di eventi |
| v8 | No | Il tuo layout di bit | Formati proprietari o sperimentali |
Tutte e sette le versioni sono da 128 bit e si scrivono nella stessa forma 8-4-4-4-12. Cambia solo il significato dei bit.
Domande frequenti
In che cosa il v6 differisce dal v1?
Solo nell'ordine dei bit del timestamp. Il v1 spezza il tempo in due blocchi, il v6 lo mette intero in testa: per questo il v6 si ordina bene come testo.
v6 o v7?
Il v7 usa il tempo Unix in millisecondi ed è la raccomandazione della RFC 9562 per i progetti nuovi. Il v6 esiste soprattutto per mantenere la compatibilità con il v1.
Il v6 resta unico nello stesso millisecondo?
Sì: l'orologio avanza in modo monotono e il resto dell'identificatore è casuale, quindi due valori dello stesso istante non collidono.