ESC
Developer

Qu'est-ce qu'un UUID ? Guide du Développeur sur les Identifiants Uniques

Apprenez ce que sont les UUID, comment fonctionnent les différentes versions, quand les utiliser et comment les générer en JavaScript, Python, PHP et SQL.

2026-06-25 8 min read Developer
UUID Guide: A Developer's Guide to Unique Identifiers

Qu'est-ce qu'un UUID ?

Un UUID (Universally Unique Identifier) est un identifiant de 128 bits conçu pour être unique dans l'espace et le temps, sans coordination centrale. Le résultat est une chaîne de 36 caractères au format :

550e8400-e29b-41d4-a716-446655440000

Elle encode 32 chiffres hexadécimaux en cinq groupes séparés par des tirets : 8-4-4-4-12.

Probabilité de collision : Avec UUID v4, la probabilité de générer deux IDs identiques est d'environ 1 sur 5,3×1036. En pratique, vous ne rencontrerez jamais de collision en production.

Les Versions d'UUID Expliquées

UUID v1 — Basé sur le temps + adresse MAC

Combine l'horodatage avec l'adresse MAC. Ordonné chronologiquement mais révèle l'adresse MAC et l'horodatage exact — un problème de confidentialité.

UUID v4 — Aléatoire (le plus utilisé)

Remplit 122 bits avec des données aléatoires cryptographiquement sûres. Le choix par défaut pour la plupart des cas d'usage.

UUID v5 — Namespace + SHA-1

Déterministe : même namespace + nom = même UUID à chaque fois. Préférez v5 à v3 (MD5 est obsolète).

UUID v7 — Ordonné par le temps (nouveau standard)

Utilise un horodatage Unix en millisecondes dans les bits les plus significatifs. Les UUID sont triables et améliorent considérablement les performances des index B-tree.

Pour les clés primaires : Préférez UUID v7. Sa nature ordonnée prévient la fragmentation des index.

Pourquoi Utiliser des UUIDs ?

  • Pas de coordination centrale : N'importe quel client ou microservice peut générer un UUID indépendamment.
  • Sécurité par l'opacité : Les IDs entiers séquentiels exposent votre volume de données. Les UUIDs ne révèlent rien.
  • Fusion de bases de données : Les tables à clés UUID fusionnent sans conflits.
  • Génération hors ligne : Les apps mobiles peuvent créer des enregistrements hors ligne et synchroniser plus tard.
  • Standard industriel : Support natif dans toutes les bases de données et frameworks majeurs.

Quand NE PAS Utiliser des UUIDs ?

  • Surcharge de stockage : Utilisez BINARY(16) en MySQL ou le type natif uuid en PostgreSQL plutôt que VARCHAR(36).
  • Slugs d'URL : Trop longs et non mémorables. Utilisez des slugs lisibles pour les URLs orientées utilisateur.
  • Fragmentation des index avec v4 : Pour les tables à forte écriture, utilisez UUID v7 ou ULID.
Conseil MySQL : Ne stockez jamais les UUIDs en VARCHAR(36). Utilisez BINARY(16) avec UUID_TO_BIN(uuid, 1).

Générer des UUIDs dans le Code

JavaScript

const id = crypto.randomUUID(); // v4

Python

import uuid; id = str(uuid.uuid4())

PHP

use Ramsey\Uuid\Uuid;
$v4 = Uuid::uuid4()->toString();
$v7 = Uuid::uuid7()->toString();

SQL

-- MySQL : SELECT UUID();
-- PostgreSQL : SELECT gen_random_uuid();

Meilleures Pratiques

  • Stocker en binaire : BINARY(16) ou type natif uuid PostgreSQL.
  • Utiliser v4 dans la plupart des cas.
  • Utiliser v7 pour les clés primaires de base de données.
  • Éviter v1 dans les contextes sensibles à la vie privée.
  • Valider le format UUID à l'entrée.
  • Toujours utiliser des minuscules.
Besoin de générer des UUIDs maintenant ? Notre Générateur UUID crée des UUIDs v4 et v7 en masse.

Questions Fréquentes

Deux UUIDs peuvent-ils être identiques ?

Théoriquement oui. La probabilité de collision v4 est d'environ 1 sur 5,3×1036. En pratique, vous ne rencontrerez jamais de collision dans un système réel.

v4 ou v7 pour les clés primaires ?

v7 pour les clés primaires. v4 insère à des positions aléatoires dans l'index B-tree. v7 garantit des insertions en fin d'index.

Les UUIDs sont-ils sensibles à la casse ?

Non. La spécification est insensible à la casse. Par convention, utilisez toujours des minuscules.

Générer des UUIDs Instantanément

Générez des UUID v4 ou v7 en masse, copiez-les dans le presse-papiers — sans serveur, sans suivi, 100% côté client.

Ouvrir le Générateur UUID