UUID v4 vs v7: willekeurige of tijdgeordende ID's

Gids UUID v4 vs v7

UUID v4 vs v7 (en GUID vs UUID): welke u gebruikt | We.Inc

Hoe UUID v7 verschilt van v4 volgens RFC 9562, waarom tijdgeordende ID's geschikt zijn als databasekeys, wat een GUID is, en een browsertool om v4- en v7-ID's te maken en een v7-timestamp te decoderen.

Beide zijn 128-bit identifiers, geschreven als 36 tekens. Een v4-UUID bestaat uit 122 willekeurige bits, dus nieuwe waarden komen overal in een gesorteerde index terecht. Een v7-UUID begint met een 48-bit Unix-timestamp in milliseconden, gevolgd door willekeurige bits, dus waarden sorteren ongeveer op aanmaaktijd. RFC 9562 raadt v7 aan boven de oudere tijdgebaseerde v1 en v6.

v4 en v7 vergeleken

Een UUID-versie kiezen is vooral een databasevraag. Willekeurige v4-keys verspreiden inserts over een index, terwijl v7-keys op volgorde binnenkomen, net als een auto-increment-nummer, maar zonder centrale teller. Genereer hieronder beide soorten en plak daarna een willekeurige UUID om de versie te zien en, bij v7, het moment waarop hij is gemaakt.

Veelgestelde vragen

Wat is het verschil tussen een GUID en een UUID?

In de praktijk geen enkel verschil dat ertoe doet. RFC 9562 definieert UUID's en vermeldt dat ze ook bekendstaan als GUID's, Globally Unique Identifiers, de naam die tools van Microsoft gebruiken. Een GUID die .NET of SQL Server genereert, is een UUID in hetzelfde formaat van 36 tekens.

Is UUID v7 een officiële standaard?

Ja. RFC 9562, gepubliceerd in 2024, definieert de versies 6, 7 en 8 naast de oudere en vervangt RFC 4122, het document dat UUID's eerder beschreef.

Is UUID v7 uniek genoeg?

Elke milliseconde heeft 74 willekeurige bits om over te verdelen, ruim genoeg voor bijna elk systeem. Voor botsingen zouden enorme aantallen ID's in precies dezelfde milliseconde moeten worden gemaakt.

Kan ik de aanmaaktijd uit een v7-UUID halen?

Ja. De eerste 12 hexcijfers zijn de Unix-tijd in milliseconden. Plak er een in de decoder hierboven om hem als datum te zien, of lees die cijfers zelf als hexadecimaal getal.

Moet ik bestaande v4-keys omzetten naar v7?

Meestal niet. Beide zijn geldige UUID's en kunnen in dezelfde kolom staan, dus nieuwe rijen kunnen v7 gebruiken terwijl oude rijen hun v4-waarden houden. Primaire keys herschrijven betekent elke foreign key herschrijven die ernaar verwijst.

Waarom volgorde ertoe doet voor databases

De opbouw lezen

Alle acht UUID-versies

UUID-versies in RFC 9562

Code om te kopiëren

UUID v4 in de browser of Node

Ingebouwd in huidige browsers op beveiligde pagina's en in Node 19 en later via het globale crypto-object. Geeft een string van 36 tekens terug.

UUID v7 zonder library

Schrijft de huidige tijd in de eerste zes bytes en zet daarna de versie- en variant-bits. De rest blijft willekeurig.

De tijd uit een v7-UUID lezen

De eerste 12 hexcijfers zijn milliseconden sinds 1970, dus ze parsen geeft een Date.

Genereren en decoderen

v4 genereren

v7 genereren

Gegenereerd

Druk op een knop om een UUID te maken. Hij wordt in uw browser gemaakt en nergens naartoe gestuurd.

Plak een UUID om te decoderen

Versie: {v}

RFC 9562 (de standaardvariant)

Niet de RFC 9562-variant

Gemaakt: {v} (UTC)

Deze versie bevat geen Unix-timestamp.

Dat is geen UUID. Verwacht 32 hexcijfers in groepen van 8-4-4-4-12.

Dit is de Nil-UUID: alle 128 bits zijn nul.

Dit is de Max-UUID: alle 128 bits zijn één.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap