Curious TechieDev Toolbox
Todas las Guías/Identificadores8 min read

¿Qué es un UUID? Versiones, Entropía y el Estándar RFC 9562

Generación de identificadores de 128 bits: aleatoriedad en UUID v4 frente a indexación temporal con UUID v7.

Puntos Clave
  • Un UUID es un identificador de 128 bits estandarizado por RFC 9562.
  • UUID v4 utiliza 122 bits de aleatoriedad criptográfica, logrando colisiones prácticamente imposibles.
  • UUID v7 introduce un prefijo de timestamp de 48 bits para optimizar la indexación en bases de datos relacionales.
  • Permite a microservicios distribuidos crear claves primarias sin coordinarse con una base de datos central.

Las arquitecturas distribuidas y los microservicios necesitan claves primarias que puedan generarse de forma autónoma en cualquier nodo sin un coordinador central. El estándar universal es el UUID (Universally Unique Identifier).

1. Estructura del UUID de 128 Bits

Estandarizado por RFC 9562, un UUID contiene 16 octetos (128 bits) representados mediante 32 caracteres hexadecimales organizados en cinco bloques separados por guiones:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
M = Versión (ej. 4 o 7) | N = Variante (habitualmente 8, 9, a o b)

2. Probabilidad Matemática de Colisión

Con 122 bits de entropía en UUID v4 (2^122 ≈ 5,3 × 10^36 combinaciones), habría que generar mil millones de UUIDs cada segundo durante 85 años antes de tener un 50% de probabilidad de coincidencia.

3. UUID v4 (Aleatorio) vs UUID v7 (Orden Cronológico)

A diferencia de UUID v4 que es puramente aleatorio, el estándar UUID v7 sitúa una marca de tiempo Unix de 48 milisegundos en los bits iniciales, garantizando que los registros se ordenen cronológicamente.

4. Indexación en Bases de Datos y Fragmentación B-Tree

El orden aleatorio de UUID v4 fragmenta los árboles B de las bases de datos. Con UUID v7, las inserciones se realizan de forma secuencial al final del índice, alcanzando un rendimiento de inserción hasta 10 veces mayor en PostgreSQL y MySQL.