UUID v6 uitgelegd
UUID v6 gebruikt dezelfde velden als v1, maar in een andere volgorde. v1 bewaart de tijdstempel vanaf een tussenliggend precisieniveau, waardoor sorteren als tekst geen chronologische volgorde opleverde.
v6 verplaatst de hoge bits van die tijdstempel naar het begin, zodat alfabetisch sorteren samenvalt met de volgorde van genereren. Daardoor kun je dezelfde kolom blijven gebruiken als voor v1, terwijl invoegen netjes op volgorde gebeurt.
Hoe het werkt
- Stel in hoeveel UUID's je nodig hebt, van 1 tot 1000.
- Kies eventueel hoofdletters, koppeltekens en accolades.
- Druk op UUID genereren om tijdsgeordende v6-waarden te maken.
Waarvoor je het gebruikt
- Systemen die al met v1 werken en alleen het sorteeprobleem willen oplossen.
- Waarden die chronologisch moeten sorteren maar een andere precisie nodig hebben dan v7 biedt.
- Migraties waarbij je een bestaande v1-kolom niet opnieuw wilt inrichten.
Structuur
De eerste 48 bits zijn het hoge deel van de tijdstempel, gevolgd door 4 bits versienummer (6). Daarna komen de resterende 12 bits tijdstempel, 14 bits klokreeks en 48 bits node.
Waar UUID v6 past
| Optie | Wanneer gebruiken |
|---|---|
v6 | Zelfde velden als v1, maar in een sorteervriendelijke volgorde |
v7 | Eenvoudiger ontworpen moderne variant op tijd |
v1 | De oorspronkelijke volgorde die niet sorteert |
Overzicht van alle UUID-versies
| Versie | Sorteerbaar | Herkomst van de bits | Waarvoor het past |
|---|---|---|---|
| v1 | Nee | Tijdstempel + MAC-adres | Bestaande systemen die v1 verwachten |
| v3 | Nee | MD5-hash van de naam | Deterministische ID's als MD5 verplicht is |
| v4 | Nee | 122 random bits | Vrijwel elke gewone unieke identificatie |
| v5 | Nee | SHA-1-hash van de naam | Als dezelfde naam altijd dezelfde ID moet geven |
| v6 | Ja | Herschikte tijdstempel | Als je zowel randomheid als sortering wilt |
| v7 | Ja | Unix-tijd in milliseconden | Primaire sleutels en gebeurtenis-ID's |
| v8 | Nee | Zelfgekozen bitindeling | Eigen formaten en experimenten |
Alle zeven versies zijn 128 bits en gebruiken dezelfde notatie 8-4-4-4-12. Het verschil zit alleen in wat elk bit voorstelt.
Codevoorbeelden
javascript
// Je hebt een bibliotheek nodig
// bijvoorbeeld uuid v11+
import { v6 as uuidv6 } from 'uuid';
const id = uuidv6();
python
# Python 3.14+
import uuid
id = str(uuid.uuid6())
java
// Je hebt een bibliotheek nodig
csharp
// .NET 9+ biedt alleen v7 en geen v6
sql
-- Meestal in de applicatie gemaakt
Veelgestelde vragen
Moet ik v6 of v7 kiezen?
Voor nieuw werk v7: de velden zijn eenvoudiger en er zijn meer random bits. Kom je van v1 af, dan is v6 de logische stap.
Verraadt v6 wanneer ik het heb gemaakt?
Ja, de tijdstempel staat vooraan in de waarde en is dus leesbaar. Wil je dat verbergen, gebruik dan v4.
Sorteert v6 net zo goed als v7?
v6 sorteert zelfs fijner, omdat v1 een tijdstempel in stappen van 100 nanoseconden gebruikt en v6 die precisie overneemt.