Cos'è UUID v7?

UUID v7 è la versione più recente degli Universally Unique Identifiers definita nell'RFC 9562. A differenza delle versioni precedenti come UUID v4 (puramente casuale) o UUID v1 (utilizza l'indirizzo MAC), UUID v7 incorpora direttamente nell'identificatore un timestamp Unix Epoch a 48 bit in millisecondi. Questo rende i valori UUID v7 naturalmente ordinabili per data di creazione — un vantaggio significativo per l'indicizzazione dei database, i sistemi distribuiti e il logging degli eventi in cui l'ordinamento cronologico è importante.

Poiché UUID v7 non incorpora indirizzi MAC, evita i problemi di privacy associati a UUID v1. I bit rimanenti dopo il timestamp e i campi versione/variante vengono riempiti con dati casuali o monotoni, garantendo l'unicità anche quando vengono generati più UUID nello stesso millisecondo.

Come è costruito UUID v7

Un UUID v7 è composto da 128 bit organizzati come segue:

  • Bit 0–47: Un timestamp Unix Epoch unsigned big-endian a 48 bit in millisecondi
  • Bit 48–51: Il campo versione a 4 bit, impostato su 0111 (7)
  • Bit 52–63: 12 bit di dati casuali o monotoni per precisione sub-millisecondo o unicità
  • Bit 64–65: Il campo variante a 2 bit, impostato su 10 (RFC 9562)
  • Bit 66–127: 62 bit di dati casuali o monotoni per unicità aggiuntiva

Questa struttura garantisce che gli UUID generati più tardi nel tempo vengano sempre ordinati dopo quelli precedenti a livello di millisecondo, rendendoli ideali come chiavi primarie nei database con indice B-tree.

Descrizione dello strumento

Questo generatore di UUID v7 crea UUID versione 7 conformi all'RFC 9562 con una visualizzazione dettagliata del timestamp incorporato. Genera uno o fino a 100 UUID alla volta, alterna tra formattazione maiuscola e minuscola e scegli se includere i trattini. Lo strumento estrae e visualizza anche il timestamp Unix Epoch incorporato dal primo UUID generato, consentendoti di verificare il tempo di creazione codificato in ciascun identificatore.

Esempi

Formato Output di esempio
Standard 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Maiuscolo 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Senza trattini 019544a23b4c7d8e9f012a3b4c5d6e7f

Funzionalità

  • Generazione in blocco: Genera da 1 a 100 valori UUID v7 alla volta con un cursore per la quantità
  • Attiva/disattiva maiuscole: Passa dall'output in minuscolo a quello in maiuscolo
  • Attiva/disattiva trattini: Includi o rimuovi i trattini per formati compatti
  • Estrazione del timestamp: Visualizza automaticamente il timestamp Unix Epoch incorporato dall'UUID generato
  • Supporto al download: Esporta gli UUID generati come file di testo per uso in batch

Casi d'uso

  • Genera chiavi primarie ordinabili per tempo per database su larga scala in cui le prestazioni di inserimento e la localizzazione dei dati sono importanti
  • Crea identificatori a incremento monotono per sistemi distribuiti di event streaming come Kafka o Pulsar
  • Sostituisci UUID v4 nelle applicazioni che necessitano di ordinamento cronologico senza una colonna timestamp separata

UUID v7 vs altre versioni

Versione Basato sul tempo Ordinabile Privacy sicura Casualità
v1 No No (usa MAC) Bassa
v4 No No Alta
v6 No (usa MAC) Bassa
v7 Media

UUID v7 combina le migliori qualità: ordinabilità basata sul tempo senza esporre identificatori hardware, con una casualità sufficiente a prevenire collisioni tra nodi distribuiti.

Spiegazione delle opzioni

  • Quantità (1–100): Quanti valori UUID v7 generare in un singolo batch. Tutti gli UUID in un batch condividono lo stesso timestamp approssimativo ma differiscono nei loro bit casuali.
  • Maiuscole: Se abilitato, genera UUID con caratteri esadecimali maiuscoli (A–F invece di a–f).
  • Trattini: Se abilitato (impostazione predefinita), gli UUID includono il raggruppamento standard con trattini 8-4-4-4-12. Disabilita per ottenere una stringa esadecimale compatta di 32 caratteri.

FAQ

UUID v7 può generare collisioni? Le collisioni sono estremamente improbabili. Anche nello stesso millisecondo, i 74 bit di dati casuali/monotoni forniscono oltre 18 quintilioni di combinazioni possibili. La libreria uuid utilizza inoltre contatori monotoni per garantire l'unicità all'interno di un processo.

UUID v7 è retrocompatibile con UUID v4? Sì. UUID v7 segue lo stesso formato a 128 bit, 8-4-4-4-12 ed è valido ovunque vengano accettati gli UUID. Le colonne UUID esistenti, i parser e i validatori funzionano senza modifiche.

Quando dovrei usare UUID v7 invece di UUID v4? Usa UUID v7 quando il tuo caso d'uso beneficia di chiavi ordinate per tempo — ad esempio, come chiavi primarie di database in cui le prestazioni dell'indice B-tree migliorano con gli inserimenti sequenziali. Usa UUID v4 quando l'ordinamento non è rilevante e desideri la massima casualità.