Générateur 🔒 Fonctionne dans votre navigateur — aucune donnée envoyée

Générateur d'UUID v7

Créez des UUID version 7 ordonnés dans le temps, qui se trient par date de création : idéal pour les clés primaires de base de données.

UUID générés
Inspecter un UUID

Générer des UUID v7 ordonnés dans le temps

L'UUID v7 réunit le meilleur des deux mondes : il est unique sans coordination, comme un UUID aléatoire, et se trie par date de création, comme un identifiant auto-incrémenté. C'est pourquoi la plupart des bases de données et des ORM le recommandent désormais pour les clés primaires.

Cette page ouvre le générateur d'UUID avec la version 7 sélectionnée. Les 48 premiers bits viennent de votre horloge ; le reste provient du générateur aléatoire sécurisé du navigateur.

Schéma : les parties de l'UUID version 7 01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10 — horodatage de 48 bits en millisecondes, chiffre de version 7, bits de variante et 74 bits aléatoires.01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10versionvarianteTemps Unix (ms) · 480x01926f3a7c2b = 17284429568432024-10-09 03:02:36.843 UTC12bits aléatoires · 6248 + 4 + 12 + 2 + 62 = 128
Un UUID version 7 commence par son heure de création en millisecondes : les nouveaux identifiants se trient donc dans l'ordre chronologique et ménagent les index de base de données. Le premier chiffre du troisième groupe est la version, le premier du quatrième groupe porte les bits de variante, le reste est aléatoire.

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

La plupart des bases de données relationnelles stockent les clés primaires dans un arbre B (B-tree). Une clé v4 aléatoire atterrit quelque part au milieu de l'index à chaque insertion, ce qui force des divisions de pages et disperse les lignes liées sur le disque. Une clé v7 est presque toujours plus grande que la précédente : les nouvelles lignes s'ajoutent donc à la fin, exactement comme avec une séquence d'entiers. Sur des tables de plusieurs millions de lignes, la différence de vitesse d'insertion et de taille d'index est significative.

v4, v7 et ULID comparés

UUID v4UUID v7ULID
Triable par dateNonOuiOui
Bits aléatoires1227480
NormeRFC 9562RFC 9562Spécification communautaire
Tient dans une colonne UUIDOuiOuiNécessite une conversion
Révèle la date de créationNonOuiOui

Relire l'horodatage

Collez un UUID v7 dans l'inspecteur situé sous le générateur : il décode l'heure qu'il contient. Vous pouvez faire de même à la main : les 12 premiers chiffres hexadécimaux, sans le tiret, sont les millisecondes écoulées depuis 1970. Pour 01926f3a-7c2b-7d4e-…, cela donne 0x01926f3a7c2b = 1728442956843, soit le 9 octobre 2024 à 03:02:36.843 UTC.

UUID v7 dans le code

  • PostgreSQL 18+ : uuidv7()
  • Python 3.14+ : uuid.uuid7()
  • Java : la bibliothèque uuid-creator, UuidCreator.getTimeOrderedEpoch()
  • Node.js : le paquet uuid, import { v7 } from 'uuid'
  • .NET 9+ : Guid.CreateVersion7()

Quand l'ordre chronologique n'a pas d'importance, l'UUID v4 en révèle moins. Si vous avez besoin d'une mise en forme à la Microsoft, voyez le générateur de GUID.

Guides associés