UUID v4 vs v7: ID casuali o ID ordinati nel tempo

Guida UUID v4 vs v7

UUID v4 vs v7 (e GUID vs UUID): quale usare | We.Inc

Come UUID v7 differisce da v4 secondo RFC 9562, perché gli ID ordinati nel tempo sono adatti alle chiavi di database, cos'è un GUID e uno strumento nel browser per creare ID v4 e v7 e decodificare il timestamp di un v7.

Entrambi sono identificatori a 128 bit scritti con 36 caratteri. Un UUID v4 è composto da 122 bit casuali, quindi i nuovi valori finiscono in un punto qualsiasi di un indice ordinato. Un UUID v7 inizia con un timestamp Unix a 48 bit in millisecondi seguito da bit casuali, quindi i valori si ordinano più o meno per momento di creazione. RFC 9562 raccomanda v7 rispetto ai più vecchi v1 e v6 basati sul tempo.

v4 e v7 a confronto

Scegliere una versione di UUID è soprattutto una questione di database. Le chiavi v4 casuali sparpagliano gli inserimenti in tutto l'indice, mentre le chiavi v7 arrivano in ordine, come farebbe un numero auto-increment, senza bisogno di un contatore centrale. Genera entrambi i tipi qui sotto, poi incolla qualsiasi UUID per vederne la versione e, per v7, il momento in cui è stato creato.

Domande frequenti

Che differenza c'è tra un GUID e un UUID?

Nessuna che conti nella pratica. RFC 9562 definisce gli UUID e precisa che sono noti anche come GUID, Globally Unique Identifiers, il nome usato dagli strumenti Microsoft. Un GUID generato da .NET o SQL Server è un UUID nello stesso formato a 36 caratteri.

UUID v7 è uno standard ufficiale?

Sì. RFC 9562, pubblicata nel 2024, definisce le versioni 6, 7 e 8 insieme a quelle più vecchie e rende obsoleta RFC 4122, il documento che prima descriveva gli UUID.

UUID v7 è abbastanza unico?

Ogni millisecondo dispone di 74 bit casuali, più che sufficienti per quasi ogni sistema. Una collisione richiederebbe un numero enorme di ID creati esattamente nello stesso millisecondo.

Posso ricavare il momento di creazione da un UUID v7?

Sì. Le prime 12 cifre hex sono il tempo Unix in millisecondi. Incollane uno nel decoder qui sopra per vederlo come data, o interpreta tu quelle cifre come numero esadecimale.

Devo convertire le chiavi v4 esistenti in v7?

Di solito no. Entrambi sono UUID validi e possono convivere nella stessa colonna, quindi le nuove righe possono usare v7 mentre quelle vecchie mantengono i valori v4. Riscrivere le chiavi primarie significa riscrivere ogni chiave esterna che punta a esse.

Perché l'ordinamento conta per i database

Leggere la struttura

Tutte e otto le versioni di UUID

Versioni di UUID in RFC 9562

Codice da copiare

UUID v4 nel browser o in Node

Integrato nei browser attuali sulle pagine sicure e in Node 19 e successivi tramite l'oggetto globale crypto. Restituisce una stringa di 36 caratteri.

UUID v7 senza libreria

Scrive l'ora corrente nei primi sei byte, poi imposta i bit di versione e variante. Il resto rimane casuale.

Leggere l'ora da un UUID v7

Le prime 12 cifre hex sono i millisecondi dal 1970, quindi interpretandole ottieni una Date.

Genera e decodifica

Genera v4

Genera v7

Generato

Premi un pulsante per creare un UUID. Viene creato nel tuo browser e non viene mai inviato da nessuna parte.

Incolla un UUID da decodificare

Versione: {v}

RFC 9562 (quella standard)

Non è la variante RFC 9562

Creato: {v} (UTC)

Questa versione non contiene un timestamp Unix.

Questo non è un UUID. Servono 32 cifre hex in gruppi da 8-4-4-4-12.

Questo è il Nil UUID: tutti i 128 bit sono zero.

Questo è il Max UUID: tutti i 128 bit sono uno.

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito