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.

Consigli per l'uso

  • 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.

Domande frequenti

La differenza maggiore è l'ordinabilità cronologica. L'UUID v4 è un valore a 128 bit del tutto casuale e non si può ordinare per generazione, mentre nell'UUID v7 i primi 48 bit sono una marca temporale Unix al millesimo di secondo e il solo confronto fra stringhe rivela l'ordine di creazione.

Entrambi sono ordinabili cronologicamente, ma differiscono nella notazione. L'UUID v7 permette la migrazione conservando la compatibilità con le colonne e le librerie esistenti, mentre l'ULID adotta una forma propria più breve, ventisei caratteri in Base32 di Crockford. Se il sistema esistente presuppone il tipo UUID scegliete il primo; se in un nuovo sistema volete stringhe più corte, il secondo.

Nel maggio del 2024, con la norma RFC 9562 dell'ente che cura gli standard di Internet. Alle versioni dalla prima alla quinta si sono così aggiunte la sesta, con marca temporale riordinata, e la settima, con marca temporale Unix.

Sì. Un valore del tutto casuale come l'UUID v4 si inserisce in posizioni sparse dell'indice e ne favorisce la frammentazione, mentre l'UUID v7, ordinandosi cronologicamente, colloca le righe nuove verso la fine dell'indice e migliora le prestazioni in inserimento. Anche il sostegno delle principali basi di dati progredisce: PostgreSQL 18, per esempio, offre di serie una funzione dedicata.
Tool-kun

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.