Hva er UUID v7?

UUID v7 er den nyeste versjonen av Universally Unique Identifiers definert i RFC 9562. I motsetning til eldre versjoner som UUID v4 (rent tilfeldig) eller UUID v1 (bruker MAC-adresse), bygger UUID v7 inn et 48-bits Unix Epoch-tidsstempel i millisekunder direkte i identifikatoren. Dette gjør UUID v7-verdier naturlig sorterbare etter opprettelsestidspunkt — en stor fordel for databaseindeksering, distribuerte systemer og hendelseslogging der kronologisk rekkefølge er viktig.

Fordi UUID v7 ikke inkorporerer MAC-adresser, unngår det personvernproblemene som er forbundet med UUID v1. De gjenværende bitene etter tidsstempel- og versjon/variant-feltene fylles med tilfeldige eller monotone data, noe som sikrer unikhet selv når flere UUID-er genereres innenfor samme millisekund.

Hvordan UUID v7 er konstruert

En UUID v7 består av 128 bits organisert som følger:

  • Bits 0–47: Et 48-bits big-endian usignert Unix Epoch-tidsstempel i millisekunder
  • Bits 48–51: Det 4-bits versjonsfelt, satt til 0111 (7)
  • Bits 52–63: 12 bits tilfeldige eller monotone data for sub-millisekund presisjon eller unikhet
  • Bits 64–65: Det 2-bits variantfelt, satt til 10 (RFC 9562)
  • Bits 66–127: 62 bits tilfeldige eller monotone data for ytterligere unikhet

Denne strukturen betyr at UUID-er generert senere i tid alltid vil sortere etter tidligere på millisekund-nivå, noe som gjør dem ideelle som primærnøkler i B-tre-indekserte databaser.

Verktøybeskrivelse

Denne UUID v7-generatoren oppretter RFC 9562-kompatible versjon 7 UUID-er med en visuell oversikt over det innebygde tidsstempelet. Generer én eller opptil 100 UUID-er på én gang, veksle mellom store og små bokstaver, og velg om du vil inkludere bindestreker. Verktøyet henter også ut og viser det innebygde Unix Epoch-tidsstempelet fra den første genererte UUID-en, slik at du kan verifisere opprettelsestidspunktet kodet i hver identifikator.

Eksempler

Format Eksempelutdata
Standard 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Store bokstaver 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Uten bindestreker 019544a23b4c7d8e9f012a3b4c5d6e7f

Funksjoner

  • Massegenerering: Generer 1 til 100 UUID v7-verdier på én gang med en mengdeskyder
  • Bryter for store bokstaver: Veksle mellom utdata med små og store bokstaver
  • Bryter for bindestreker: Inkluder eller fjern bindestreker for kompakte formater
  • Tidsstempelutvinning: Viser automatisk det innebygde Unix Epoch-tidsstempelet fra den genererte UUID-en
  • Nedlastingsstøtte: Eksporter genererte UUID-er som en tekstfil for satsvis bruk

Bruksområder

  • Generer tidssorterbare primærnøkler for storskala databaser der innsettingsytelse og lokalitet er viktig
  • Opprett monotont økende identifikatorer for distribuerte hendelsesstrømmingssystemer som Kafka eller Pulsar
  • Erstatt UUID v4 i applikasjoner som trenger kronologisk rekkefølge uten en separat tidsstempelkolonne

UUID v7 vs andre versjoner

Versjon Tidsbasert Sorterbar Personvernsikker Tilfeldighet
v1 Ja Nei Nei (bruker MAC) Lav
v4 Nei Nei Ja Høy
v6 Ja Ja Nei (bruker MAC) Lav
v7 Ja Ja Ja Middels

UUID v7 kombinerer de beste egenskapene: tidsbasert sorterbarhet uten å eksponere maskinvareidentifikatorer, med nok tilfeldighet til å forhindre kollisjoner på tvers av distribuerte noder.

Alternativer forklart

  • Antall (1–100): Hvor mange UUID v7-verdier som skal genereres i én enkelt batch. Alle UUID-er i en batch deler omtrent samme tidsstempel, men skiller seg i sine tilfeldige bits.
  • Store bokstaver: Når aktivert, genereres UUID-er med store hex-tegn (A–F i stedet for a–f).
  • Bindestreker: Når aktivert (standard), inkluderer UUID-er den standard 8-4-4-4-12 bindestrekgrupperingen. Deaktiver for en kompakt 32-tegns hex-streng.

FAQ

Kan UUID v7 kollidere? Kollisjoner er svært usannsynlige. Selv innenfor samme millisekund gir de 74 bitene med tilfeldige/monotone data over 18 kvintillioner mulige kombinasjoner. uuid-biblioteket bruker også monotone tellere for å garantere unikhet innenfor en prosess.

Er UUID v7 bakoverkompatibel med UUID v4? Ja. UUID v7 følger samme 128-bits, 8-4-4-4-12-format og er gyldig overalt der UUID-er aksepteres. Eksisterende UUID-kolonner, parsere og validatorer fungerer uten endringer.

Når bør jeg bruke UUID v7 i stedet for UUID v4? Bruk UUID v7 når brukstilfellet ditt drar nytte av tidsordnede nøkler — for eksempel som primærnøkler i databaser der B-tre-indeksytelse forbedres med sekvensielle innsettinger. Bruk UUID v4 når rekkefølge er irrelevant og du ønsker maksimal tilfeldighet.