UUID v4 vs UUID v7 — welke moet je gebruiken?
UUID v7, gestandaardiseerd in RFC 9562 (mei 2024), pakt de grootste zwakte van UUID v4 aan: slechte database-indexprestaties.
UUID v4 (willekeurig)
UUID v4 gebruikt 122 willekeurige bits en 6 vaste bits. Dit garandeert uniciteit zonder coördinatie, maar levert ID's op die willekeurig over de tijd zijn verspreid. Wanneer ze als B-tree-primaire sleutel in een database worden gebruikt, veroorzaken willekeurige ID's paginasplitsingen en indexfragmentatie, waardoor de schrijfprestaties afnemen.
UUID v7 (tijdgeordend)
UUID v7 gebruikt een 48-bits Unix-tijdstempel in milliseconden, gevolgd door willekeurige bits. Het tijdstempelvoorvoegsel maakt UUID's van nature sorteerbaar op aanmaaktijd, waardoor het B-tree-fragmentatieprobleem wordt opgelost. De sleutels zijn nog steeds wereldwijd uniek en kunnen zonder coördinatie worden gegenereerd.
Vergelijking
| | UUID v4 | UUID v7 | |---|---------|---------| | Standaard | RFC 9562 | RFC 9562 | | Sorteerbaar | Nee | Ja (op tijd) | | DB-prestaties | Slecht | Goed | | Uniek | Ja | Ja | | Leakt tijdstempel | Nee | Ja (millisecondennauwkeurig) |
Aanbeveling: Gebruik UUID v7 voor primaire databasesleutels en UUID v4 wanneer je de aanmaaktijd expliciet niet wilt prijsgeven. Probeer beide in onze UUID-generator.