UUID v4 vs UUID v7
Les deux sont des identifiants de 128 bits définis par la RFC 9562 (qui a rendu la RFC 4122 obsolète en 2024). La version 4 est quasi entièrement aléatoire ; la version 7 place un horodatage en millisecondes dans les bits de poids fort, si bien que les identifiants se trient par date de création. La différence compte surtout pour les clés primaires de base de données.
| Aspect | UUID v4 | UUID v7 |
|---|---|---|
| Composition | 122 bits aléatoires | 48 bits d'horodatage + 74 aléatoires |
| Triable par le temps | Non | Oui |
| Idéal pour | Identifiants uniques généraux | Clés primaires de BD |
| Révèle la date de création | Non | Oui (milliseconde) |
| Défini dans | RFC 9562 | RFC 9562 |
Ce qui a changé avec la RFC 9562
La RFC 9562 a conservé v1–v5 et ajouté v6, v7 et v8. La version 7 est la nouvelle recommandation pour la plupart des systèmes ayant besoin de clés uniques et triables, car elle combine un horodatage Unix en millisecondes et des bits aléatoires pour l'unicité.
Pourquoi v7 aide les bases de données
Les clés aléatoires v4 dispersent les insertions dans l'index B-tree, provoquant des éclatements de pages et une mauvaise localité de cache. Les clés v7 ordonnées dans le temps s'ajoutent près de la fin de l'index, gardant les insertions rapides et l'index compact — le même avantage que les entiers auto-incrémentés, sans séquence centrale.
Quand v4 reste le bon choix
Utilisez v4 quand vous ne voulez pas que la date de création soit déductible de l'identifiant, ou quand l'ordre est sans importance et que vous visez une entropie maximale. Pour des identifiants publics où révéler un horodatage n'est pas souhaitable, v4 reste la valeur sûre.
Questions fréquentes
L'UUID v7 est-il meilleur que le v4 ?
Pour les clés primaires de base de données, oui : l'ordre temporel du v7 garde les index efficaces. Pour des identifiants publics opaques où vous ne voulez pas divulguer d'horodatage, le v4 est préférable.
v4 et v7 résistent-ils aux collisions ?
Oui. Les deux contiennent assez de bits aléatoires pour rendre les collisions astronomiquement improbables à l'échelle pratique.
Le générateur prend-il en charge le v7 ?
Le générateur produit des UUID version 4 conformes à la RFC 9562. Pour des clés ordonnées dans le temps, utilisez une bibliothèque v7 côté serveur ; ce guide explique quand cela en vaut la peine.