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.

UUID v4 vs v7 en un coup d'œil
AspectUUID v4UUID v7
Composition122 bits aléatoires48 bits d'horodatage + 74 aléatoires
Triable par le tempsNonOui
Idéal pourIdentifiants uniques générauxClés primaires de BD
Révèle la date de créationNonOui (milliseconde)
Défini dansRFC 9562RFC 9562
UUID v4 vs v7 en un coup d'œil

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.