UUID v4 vs v7 : identifiants aléatoires ou ordonnés dans le temps

Guide UUID v4 vs v7

UUID v4 vs v7 (et GUID vs UUID) : lequel choisir | We.Inc

En quoi UUID v7 diffère de v4 selon la RFC 9562, pourquoi les identifiants ordonnés dans le temps conviennent aux clés de base de données, ce qu'est un GUID, et un outil dans le navigateur pour créer des ID v4 et v7 et décoder le timestamp d'un v7.

Les deux sont des identifiants de 128 bits écrits sur 36 caractères. Un UUID v4 contient 122 bits aléatoires : les nouvelles valeurs atterrissent donc n'importe où dans un index trié. Un UUID v7 commence par un timestamp Unix de 48 bits en millisecondes suivi de bits aléatoires : les valeurs se trient donc à peu près par date de création. La RFC 9562 recommande v7 plutôt que les anciennes versions temporelles v1 et v6.

v4 et v7 comparés

Choisir une version d'UUID est surtout une question de base de données. Les clés v4 aléatoires dispersent les insertions dans tout l'index, alors que les clés v7 arrivent dans l'ordre, comme le ferait un nombre auto-incrémenté, sans compteur central. Générez les deux types ci-dessous, puis collez n'importe quel UUID pour voir sa version et, pour un v7, le moment de sa création.

Questions fréquentes

Quelle est la différence entre un GUID et un UUID ?

Aucune qui compte en pratique. La RFC 9562 définit les UUID et précise qu'on les appelle aussi GUID, Globally Unique Identifiers, le nom utilisé par les outils Microsoft. Un GUID généré par .NET ou SQL Server est un UUID au même format de 36 caractères.

UUID v7 est-il une norme officielle ?

Oui. La RFC 9562, publiée en 2024, définit les versions 6, 7 et 8 aux côtés des anciennes et rend obsolète la RFC 4122, le document qui décrivait les UUID auparavant.

UUID v7 est-il suffisamment unique ?

Chaque milliseconde dispose de 74 bits aléatoires, ce qui suffit largement pour presque tous les systèmes. Une collision exigerait un nombre énorme d'ID créés exactement dans la même milliseconde.

Peut-on retrouver la date de création à partir d'un UUID v7 ?

Oui. Les 12 premiers chiffres hexadécimaux sont le temps Unix en millisecondes. Collez-en un dans le décodeur ci-dessus pour le voir sous forme de date, ou lisez vous-même ces chiffres comme un nombre hexadécimal.

Faut-il passer les clés v4 existantes en v7 ?

En général, non. Les deux sont des UUID valides et peuvent cohabiter dans la même colonne : les nouvelles lignes peuvent utiliser v7 tandis que les anciennes gardent leurs valeurs v4. Réécrire des clés primaires implique de réécrire chaque clé étrangère qui pointe vers elles.

Pourquoi l'ordre compte pour les bases de données

Lire la structure

Les huit versions d'UUID

Versions d'UUID dans la RFC 9562

Code à copier

UUID v4 dans le navigateur ou Node

Intégré aux navigateurs récents sur les pages sécurisées et à Node 19 et versions ultérieures via l'objet global crypto. Renvoie une chaîne de 36 caractères.

UUID v7 sans bibliothèque

Écrit l'heure actuelle dans les six premiers octets, puis définit les bits de version et de variante. Le reste reste aléatoire.

Lire la date d'un UUID v7

Les 12 premiers chiffres hexadécimaux sont des millisecondes depuis 1970 : les analyser donne une Date.

Générer et décoder

Générer un v4

Générer un v7

Généré

Appuyez sur un bouton pour créer un UUID. Il est créé dans votre navigateur et n'est envoyé nulle part.

Collez un UUID à décoder

Version : {v}

RFC 9562 (la variante standard)

Pas la variante RFC 9562

Créé le : {v} (UTC)

Cette version ne contient pas de timestamp Unix.

Ce n'est pas un UUID. Attendu : 32 chiffres hexadécimaux en groupes de 8-4-4-4-12.

C'est le Nil UUID : les 128 bits sont à zéro.

C'est le Max UUID : les 128 bits sont à un.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site