Vad är UUID v7?

UUID v7 är den senaste versionen av Universally Unique Identifiers definierad i RFC 9562. Till skillnad från äldre versioner som UUID v4 (helt slumpmässig) eller UUID v1 (använder MAC-adress), bäddar UUID v7 in en 48-bitars Unix Epoch-tidsstämpel i millisekunder direkt i identifieraren. Detta gör att UUID v7-värden naturligt kan sorteras efter skapelsetid — en stor fördel för databasindexering, distribuerade system och händelseloggning där kronologisk ordning är viktig.

Eftersom UUID v7 inte inkorporerar MAC-adresser undviker det de integritetsproblem som är förknippade med UUID v1. De återstående bitarna efter tidsstämpeln och versions-/variantfälten fylls med slumpmässiga eller monotona data, vilket säkerställer unikhet även när flera UUID:n genereras inom samma millisekund.

Hur UUID v7 är konstruerat

Ett UUID v7 består av 128 bitar organiserade enligt följande:

  • Bitar 0–47: En 48-bitars big-endian osignerad Unix Epoch-tidsstämpel i millisekunder
  • Bitar 48–51: Det 4-bitars versionsfältet, satt till 0111 (7)
  • Bitar 52–63: 12 bitar slumpmässiga eller monotona data för precision eller unikhet inom millisekunden
  • Bitar 64–65: Det 2-bitars variantfältet, satt till 10 (RFC 9562)
  • Bitar 66–127: 62 bitar slumpmässiga eller monotona data för ytterligare unikhet

Denna struktur innebär att UUID:n som genereras senare i tid alltid sorteras efter tidigare på millisekundnivå, vilket gör dem idealiska som primärnycklar i B-trädsindexerade databaser.

Verktygsbeskrivning

Denna UUID v7-generator skapar RFC 9562-kompatibla version 7 UUID:n med en visuell uppdelning av den inbäddade tidsstämpeln. Generera ett eller upp till 100 UUID:n åt gången, växla mellan versaler och gemener, och välj om bindestreck ska inkluderas. Verktyget extraherar och visar även den inbäddade Unix Epoch-tidsstämpeln från det första genererade UUID:t, vilket låter dig verifiera skapelsetiden kodad i varje identifierare.

Exempel

Format Exempelutdata
Standard 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Versaler 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Utan bindestreck 019544a23b4c7d8e9f012a3b4c5d6e7f

Funktioner

  • Massgenering: Generera 1 till 100 UUID v7-värden åt gången med ett kvantitetsreglage
  • Versalväxling: Växla mellan gemener och versaler i utdata
  • Bindestrecksväxling: Inkludera eller ta bort bindestreck för kompakta format
  • Tidsstämpelextrahering: Visar automatiskt den inbäddade Unix Epoch-tidsstämpeln från det genererade UUID:t
  • Nedladdningsstöd: Exportera genererade UUID:n som en textfil för batchanvändning

Användningsområden

  • Generera tidssorterbara primärnycklar för storskaliga databaser där insättningsprestanda och lokalitet är viktigt
  • Skapa monotont ökande identifierare för distribuerade händelseströmningssystem som Kafka eller Pulsar
  • Ersätt UUID v4 i applikationer som behöver kronologisk ordning utan en separat tidsstämpelkolumn

UUID v7 jämfört med andra versioner

Version Tidsbaserad Sorterbar Integritetssäker Slumpmässighet
v1 Ja Nej Nej (använder MAC) Låg
v4 Nej Nej Ja Hög
v6 Ja Ja Nej (använder MAC) Låg
v7 Ja Ja Ja Medel

UUID v7 kombinerar de bästa egenskaperna: tidsbaserad sorterbarhet utan att exponera hårdvaruidentifierare, med tillräcklig slumpmässighet för att förhindra kollisioner mellan distribuerade noder.

Alternativ förklarade

  • Antal (1–100): Hur många UUID v7-värden som ska genereras i en enskild batch. Alla UUID:n i en batch delar ungefär samma tidsstämpel men skiljer sig åt i sina slumpmässiga bitar.
  • Versaler: När aktiverat matas UUID:n ut med versala hex-tecken (A–F istället för a–f).
  • Bindestreck: När aktiverat (standard) inkluderar UUID:n den vanliga 8-4-4-4-12 bindestrecksgruppering. Inaktivera för en kompakt 32-teckens hex-sträng.

Vanliga frågor

Kan UUID v7 kollidera? Kollisioner är extremt osannolika. Även inom samma millisekund ger de 74 bitarna av slumpmässiga/monotona data över 18 kvintiljoner möjliga kombinationer. uuid-biblioteket använder också monotona räknare för att garantera unikhet inom en process.

Är UUID v7 bakåtkompatibelt med UUID v4? Ja. UUID v7 följer samma 128-bitars, 8-4-4-4-12-format och är giltigt överallt där UUID:n accepteras. Befintliga UUID-kolumner, parsers och validerare fungerar utan modifiering.

När ska jag använda UUID v7 istället för UUID v4? Använd UUID v7 när ditt användningsfall drar nytta av tidsordnade nycklar — till exempel som primärnycklar i databaser där B-trädsindexprestanda förbättras med sekventiella insättningar. Använd UUID v4 när ordning är irrelevant och du vill ha maximal slumpmässighet.