Generatore di UUID v7
Genera in blocco nel navigatore gli UUID di versione 7, i nuovi identificativi ordinabili cronologicamente standardizzati dalla norma RFC 9562, che recano nei primi 48 bit una marca temporale al millesimo di secondo. Sono previsti i formati standard, maiuscolo, senza trattini, fra parentesi graffe e in forma di nome uniforme di risorsa, e si possono salvare così come sono nelle colonne di tipo UUID esistenti.
Confronto fra UUID v7, UUID v4 e ULID
| Formato | Lunghezza | Ordinabile per generazione | Compatibilità con le colonne di tipo UUID | Descrizione |
|---|---|---|---|---|
| UUID v7 | 36 caratteri (compresi quattro trattini) | Sì (i primi 48 bit sono una marca temporale al millesimo di secondo) | Sì (tipo UUID standard, notazione esadecimale invariata) | Standardizzato dalla norma RFC 9562. Composto di marca temporale Unix e valori casuali, concilia l'ordinabilità cronologica con la compatibilità con il patrimonio esistente di UUID. È il formato generato da questo strumento. |
| UUID v4 | 36 caratteri (compresi quattro trattini) | No (del tutto casuale) | Sì (tipo UUID standard) | Identificativo a 128 bit del tutto casuale, standardizzato dalla norma RFC 9562. Non contiene informazioni sull'origine ed è il formato più diffuso. |
| ULID | 26 caratteri | Sì (i primi dieci caratteri sono la marca temporale) | No (essendo in Base32 richiede una conversione di tipo) | Specifica indipendente dallo standard UUID, in Base32 di Crockford. Più breve dell'UUID v7, ma non memorizzabile direttamente in una colonna di tipo UUID. |
Che cos’è l’UUID v7
L’UUID v7 è un nuovo UUID (Universally Unique Identifier) ordinabile per tempo, normalizzato dall’IETF nella RFC 9562 nel maggio 2024. L’UUID v4, a lungo la versione più diffusa, è un valore a 128 bit del tutto casuale che non lascia alcun indizio sull’ordine in cui gli identificatori sono nati; l’UUID v7 porta invece nei primi 48 bit una marca temporale Unix in millisecondi, così che basti ordinare le stringhe per disporle nell’ordine di generazione. I bit restanti sono riempiti con valori casuali, quindi l’unicità regge anche quando se ne producono più d’uno nello stesso millisecondo.
Questo strumento genera UUID v7 dentro il browser tramite la Web Crypto API e li emette in blocco nella forma che preferisce: standard, in maiuscolo, senza trattini, fra parentesi graffe o come URN. La notazione è pienamente compatibile con le colonne di database che già ospitano UUID v4, perciò può salvare i valori senza cambiare il tipo di colonna. Se desidera verificare che i valori si allineino davvero secondo la marca temporale, il decodificatore di UUID v7 ne estrae per lei l’ora incorporata.
Come si generano gli UUID v7
- Indichi quanti gliene servono Digiti il numero di UUID v7 desiderati in una volta. Può chiederne parecchi insieme quando prepara dati di prova in blocco.
- Scelga la forma di uscita Opti per standard, maiuscolo, senza trattini, fra parentesi graffe o URN, secondo il database o il sistema che accoglierà i valori.
- Prema il pulsante di generazione Nascono all’istante dalla Web Crypto API nel suo browser e compaiono nel riquadro dei risultati. Nulla viene inviato a un server.
- Copi i risultati Li prenda uno per uno con il pulsante di copia, oppure usi «copia tutto» per portare l’intero elenco negli appunti.
Consigli per sfruttarlo al meglio
- Gli UUID v7 generati sono elaborati dal JavaScript del navigatore, tramite l'interfaccia crittografica, e non giungono mai ai serventi di toolbase.cc.
- Poiché i primi 48 bit sono una marca temporale Unix al millesimo di secondo, basta ordinare gli identificativi come stringhe per disporli secondo l'ordine cronologico di generazione.
- Si possono memorizzare così come sono nelle colonne già predisposte per gli UUID v4, per esempio di tipo carattere a lunghezza fissa o del tipo UUID nativo, e la migrazione non richiede modifiche di tipo nell'applicazione.
- Il formato senza trattini è comodo per i segmenti di percorso di un indirizzo web e per i nomi di file. Quello fra parentesi graffe coincide con la notazione usata nel registro e nei componenti di Windows.
- Se esitate fra UUID v7 e ULID, che è in Base32 di Crockford e conta ventisei caratteri, scegliete il primo quando il sistema esistente presuppone colonne di tipo UUID e il secondo quando conta la brevità della stringa.
Quando l’UUID v7 è utile
Progettare la chiave primaria di un database
Poiché le righe tendono a essere inserite in ordine cronologico anziché a caso, la frammentazione dell’indice B-tree resta minore che con l’UUID v4, e può continuare a usare la colonna UUID che già possiede.
Emettere identificatori in un sistema distribuito
Più server o microservizi possono generare ciascuno identificatori univoci e ordinati nel tempo in modo indipendente, senza dipendere da un emittente centrale di sequenze.
Identificatori di log ed eventi
Usare l’UUID v7 per i log di accesso o le cronologie degli eventi consente di dedurre all’incirca quando è avvenuto un fatto dal solo identificatore, senza una colonna di marca temporale a parte.
Creare in blocco dati di prova e record fittizi
Quando popola un ambiente di sviluppo o di collaudo con molte righe fittizie, generi un lotto e lo copi direttamente in istruzioni SQL INSERT o in un payload di prova per un’API.
Esaminare ciò che ha generato
Per confermare che un UUID v7 porti davvero la marca temporale attesa, usi il decodificatore di UUID v7; se invece le occorre un UUID v4 puramente casuale, se ne occupa il generatore di UUID.
Termini legati all’UUID v7
- UUID v7
- La versione di UUID normalizzata nella RFC 9562 che custodisce nei primi 48 bit una marca temporale Unix in millisecondi. Si ordina per tempo pur restando compatibile con le colonne UUID esistenti.
- Identificatore ordinabile per marca temporale
- Identificatore che porta con sé l’ora della propria creazione, così che ordinare i valori come stringhe o numeri li disponga nell’ordine dei fatti. UUID v7, ULID e Snowflake ID rientrano in questa categoria.
- Differenza rispetto all’UUID v4
- L’UUID v4 è casuale su tutti i 128 bit e nulla dice dell’ordine, mentre i primi 48 bit di un UUID v7 sono una marca temporale e rendono visibile l’ordine di generazione. La forma scritta – 36 caratteri esadecimali – è la stessa per entrambi.
- Monotonicità
- Proprietà dei valori che crescono con regolarità nell’ordine in cui nascono. Quando più UUID v7 vengono prodotti nello stesso millisecondo, l’ordine può dipendere dalla sola parte casuale a seconda dell’implementazione: la monotonicità stretta dipende dunque da questa e non è imposta dalla specifica.
- Località dell’indice
- Tendenza dei valori appena inseriti a collocarsi vicino ai dati esistenti – di norma in coda – nell’indice B-tree di un database. Poiché i valori di UUID v7 si allineano per marca temporale, la località è alta e migliorano le divisioni di pagina e l’efficienza della cache in inserimento rispetto all’UUID v4 del tutto casuale.
- RFC 9562
- Il documento normativo che definisce l’UUID, pubblicato dall’IETF nel maggio 2024. Sostituisce la precedente RFC 4122 e aggiunge le versioni v6 e v7, ordinabili per tempo, insieme alla v8, che ammette campi personalizzati.
Domande frequenti
A proposito — l'UUID v7 che ha restituito il tempo agli identificativi
L'UUID v7 è stato standardizzato nel maggio del 2024 con la norma RFC 9562: la prima revisione di ampia portata dopo circa vent'anni dalla RFC 4122 del 2005, con l'aggiunta delle versioni 6 e 7, ordinabili cronologicamente, e della versione 8, che ammette campi personalizzati. All'origine sta un problema segnalato da anni: la totale casualità dell'UUID v4 penalizza l'efficienza degli indici delle basi di dati.
La progettazione dell'UUID v7 somiglia moltissimo a quella dell'ULID, cui è dedicato un altro strumento di questo sito. Entrambi recano in testa una marca temporale al millesimo di secondo e riempiono il resto con valori casuali; la differenza decisiva è la notazione. L'ULID adotta ventisei caratteri in Base32 di Crockford, come specifica indipendente dallo standard UUID, mentre l'UUID v7 conserva i trentasei caratteri esadecimali della tradizione: da qui il grande vantaggio di poter continuare a usare colonne, librerie e specifiche di interfaccia esistenti.
Non a caso il sostegno all'UUID v7 si è diffuso rapidamente fra le principali basi di dati e i principali ambienti di esecuzione. PostgreSQL lo ha incluso di serie nella versione 18 con una funzione dedicata, e le librerie capaci di generarlo si moltiplicano negli altri linguaggi e nei sistemi di corrispondenza fra oggetti e tabelle. Conciliare la comodità dell'ordinabilità cronologica con la conservazione del patrimonio esistente di UUID è la ragione per cui, accanto all'ULID, la sua adozione cresce così rapidamente.