Comparatifs Développement

UUID v4 vs UUID v7 vs ULID

UUID aléatoires, UUID ordonnés dans le temps et ULID comparés : disposition des bits, longueur du texte, tri, comportement dans les index de bases de données et quand utiliser chacun, avec des valeurs d'exemple décodées et vérifiées.

Dernière vérification :

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Les trois produisent des identifiants de 128 bits que l'on génère sans interroger un serveur central. Ils diffèrent par l'usage des bits. Générez et inspectez-les avec le générateur d'UUID et le décodeur d'UUID ; le contexte est expliqué dans Comment fonctionnent les UUID.

Valeurs d'exemple

  • UUID v4 d'exemple : f47ac10b-58cc-4372-a567-0e02b2c3d479
  • UUID v7 d'exemple : 01a17fce-7800-7abc-8123-456789abcdef (ses 48 premiers bits sont l'heure Unix en millisecondes : 2026-10-28 00:00:00 UTC)
  • ULID d'exemple : 01M5ZWWY0004HMASW9NF6YY093 (les 10 premiers caractères codent la même heure)

En un coup d'œil

UUID v4 UUID v7 ULID
Bits 122 aléatoires + 6 fixes 48 de temps + 74 quasi aléatoires + 6 fixes 48 de temps + 80 aléatoires
Forme texte 36 caractères, hexadécimal avec tirets 36 caractères, hexadécimal avec tirets 26 caractères, Base32 de Crockford
Trié par date de création Non Oui Oui (aussi en texte)
Révèle la date de création Non Oui, à la milliseconde Oui, à la milliseconde
Norme RFC 9562 RFC 9562 Spécification communautaire
Localité dans un index de base de données Mauvaise (insertions aléatoires) Bonne Bonne

Ce que cela change en pratique

  • Les clés v4 aléatoires dispersent les insertions dans un index B-tree, ce qui provoque des éclatements de pages et des défauts de cache sur les grandes tables. Les v7 et ULID, ordonnées dans le temps, s'ajoutent près de la fin.
  • Les identifiants ordonnés dans le temps révèlent la date de création d'un enregistrement. Ne les utilisez pas là où c'est sensible, comme pour des jetons de réinitialisation de mot de passe (utilisez v4 ou un jeton aléatoire sûr).
  • Dans une même milliseconde, v7 et ULID demandent des précautions pour rester monotones ; les bibliothèques ajoutent un compteur ou incrémentent la partie aléatoire.
  • Les deux formats sont insensibles à la casse en texte, mais l'ULID évite les lettres I, L, O et U pour être plus facile à lire à voix haute.

Lequel choisir

  • Nouvelles clés primaires de bases de données : UUID v7.
  • Identifiants qui ne doivent rien révéler : UUID v4.
  • Identifiants courts, triables et adaptés aux URL où la forme à 26 caractères convient : ULID.

Essayez ces outils

Voir aussi

  • Guide Comment fonctionnent les UUID
    La structure d'un UUID (bits de version et de variante), la signification de chaque version.
  • Glossaire UUID
    Un UUID (identifiant universel unique) est une valeur de 128 bits, écrite sur 36 caractères, unique en pratique sans aucun registre central.
  • Glossaire Horodatage Unix (Unix timestamp)
    Un horodatage Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC (l'« époque Unix »).
  • Glossaire Base32
    Le Base32 est un encodage qui représente des données binaires avec 32 caractères sûrs, les lettres A à Z et les chiffres 2 à 7.
  • Glossaire Hachage (hash)
    Un hachage (hash) est l'empreinte de longueur fixe qu'une fonction de hachage calcule à partir d'une entrée ; même entrée, même hachage.

Questions fréquemment posées

Pour des clés primaires de base de données, oui dans la plupart des cas : les valeurs v7 créées plus tard se trient plus tard, donc les insertions tombent à la fin de l'index et non à des endroits aléatoires. Utilisez v4 quand l'identifiant ne doit rien révéler, pas même sa date de création.

Non, bien que les deux fassent 128 bits. Un ULID s'écrit avec 26 caractères Base32 de Crockford et a sa propre disposition ; ce n'est donc pas une chaîne UUID valide, même s'il peut être converti en UUID.

AdSense Placeholder
Slot: footer_leaderboard