Qu'est-ce qu'un UUID et comment fonctionne-t-il
UUID (Universally Unique Identifier) est un format standardisé d'identifiant de 128 bits, défini dans la RFC 9562 (anciennement RFC 4122). L'idée principale est de pouvoir générer des identifiants uniques sur n'importe quel appareil, à tout moment, sans avoir besoin de vérifier leur unicité via un serveur central.
Format d'écriture
Un UUID s'écrit sous forme de 32 caractères hexadécimaux séparés par quatre tirets en cinq groupes : 8-4-4-4-12. Par exemple : 550e8400-e29b-41d4-a716-446655440000. Le caractère en position 13 indique la version (1–7), et le premier caractère du quatrième groupe détermine la variante (8, 9, a ou b pour un UUID standard).
Pourquoi UUID v4 est le plus populaire
UUID v4 utilise un générateur de nombres aléatoires cryptographiquement sécurisé (CSPRNG). Sur 128 bits, 6 sont réservés à la version et à la variante, laissant 122 bits d'entropie. Cela donne 5,3 × 10^36 combinaisons possibles. UUID v4 n'est lié ni au temps ni au matériel, ce qui assure un anonymat complet de la génération.
UUID dans les bases de données
L'utilisation d'UUID comme clé primaire présente des avantages : fusion sécurisée des données de différentes sources, possibilité de générer des ID côté client sans interroger la base, absence d'information sur l'ordre de création des enregistrements. Inconvénients : taille plus importante (16 octets contre 4–8 pour INT), fragmentation de l'index pour v4. UUID v7 résout le problème de fragmentation grâce au préfixe temporel.
UUID v7 — le nouveau standard
UUID v7, standardisé dans la RFC 9562 (2024), combine les avantages de UUID v1 (tri par date) et v4 (aléatoire). Les 48 premiers bits sont un timestamp Unix en millisecondes, le reste est aléatoire. Cela rend v7 idéal pour les clés primaires dans les bases de données où l'ordre d'insertion est important.