UUID v4 vs UUID v7 â Lequel devriez-vous utiliser ?
L'UUID v7, normalisé dans la RFC 9562 (mai 2024), remédie au principal défaut de l'UUID v4 : la mauvaise performance des index de base de données.
UUID v4 (aléatoire)
L'UUID v4 utilise 122 bits aléatoires et 6 bits fixes. Cela garantit l'unicité sans coordination, mais produit des identifiants répartis aléatoirement dans le temps. Lorsqu'il est utilisé comme clé primaire B-tree dans une base de données, les identifiants aléatoires provoquent des divisions de pages et une fragmentation des index, dégradant les performances d'écriture.
UUID v7 (ordonné dans le temps)
L'UUID v7 utilise un timestamp Unix en millisecondes de 48 bits suivi de bits alĂ©atoires. Le prĂ©fixe de timestamp rend les UUID naturellement triables par date de crĂ©ation, rĂ©solvant le problĂšme de fragmentation du B-tree. Les clĂ©s restent globalement uniques et peuvent ĂȘtre gĂ©nĂ©rĂ©es sans coordination.
Comparaison
| | UUID v4 | UUID v7 | |---|---------|---------| | Norme | RFC 9562 | RFC 9562 | | Triable | Non | Oui (par date) | | Performances en base de données | Faibles | Bonnes | | Unique | Oui | Oui | | Divulgue le timestamp | Non | Oui (précision à la milliseconde) |
Recommandation : Utilisez l'UUID v7 pour les clés primaires de base de données et l'UUID v4 lorsque vous ne souhaitez explicitement pas révéler la date de création. Essayez les deux dans notre générateur d'UUID.