UUID v4 vs UUID v7
Ambos son identificadores de 128 bits definidos por el RFC 9562 (que dejó obsoleto al RFC 4122 en 2024). La versión 4 es prácticamente aleatoria; la versión 7 coloca una marca de tiempo en milisegundos en los bits altos, de modo que los IDs se ordenan por hora de creación. La diferencia importa sobre todo en claves primarias de bases de datos.
| Aspecto | UUID v4 | UUID v7 |
|---|---|---|
| Composición | 122 bits aleatorios | 48 bits de tiempo + 74 aleatorios |
| Ordenable por tiempo | No | Sí |
| Ideal para | IDs únicos generales | Claves primarias de BD |
| Revela hora de creación | No | Sí (milisegundo) |
| Definido en | RFC 9562 | RFC 9562 |
Qué cambió con el RFC 9562
El RFC 9562 mantuvo v1–v5 y añadió v6, v7 y v8. La versión 7 es la nueva recomendación para la mayoría de sistemas que necesitan claves únicas y ordenables, porque combina una marca de tiempo Unix en milisegundos con bits aleatorios para la unicidad.
Por qué v7 ayuda a las bases de datos
Las claves aleatorias v4 dispersan las inserciones por el índice B-tree, provocando divisiones de página y mala localidad de caché. Las claves v7 ordenadas por tiempo se añaden cerca del final del índice, manteniendo las inserciones rápidas y el índice compacto, el mismo beneficio de los enteros autoincrementales pero sin una secuencia central.
Cuándo v4 sigue siendo lo correcto
Usa v4 cuando no quieras que la hora de creación se pueda deducir del ID, o cuando el orden sea irrelevante y busques máxima entropía. Para identificadores públicos donde filtrar una marca de tiempo no es deseable, v4 sigue siendo la opción más segura.
Preguntas frecuentes
¿Es UUID v7 mejor que v4?
Para claves primarias de bases de datos, sí: el orden temporal de v7 mantiene los índices eficientes. Para IDs públicos opacos donde no quieras filtrar marcas de tiempo, v4 es mejor.
¿v4 y v7 resisten colisiones?
Sí. Ambos incluyen suficientes bits aleatorios para que las colisiones sean astronómicamente improbables a escala práctica.
¿El generador admite v7?
El generador produce UUID versión 4 según RFC 9562. Para claves ordenadas por tiempo, usa una librería v7 en tu backend; esta guía explica cuándo merece la pena.