Guía

UUID v4 vs UUID v7: aleatoriedad, orden temporal y elección

Compara UUID v4 y v7, entiende qué bits aportan aleatoriedad o tiempo y elige según privacidad, orden e índices de base de datos.

por Tools in a Tab · Publicado el · Revisado el

Respuesta breve

UUID v4 usa aleatoriedad y no expresa cuándo fue generado. UUID v7 coloca un timestamp Unix en milisegundos en sus bits más significativos y completa el identificador con aleatoriedad, por lo que se ordena aproximadamente por tiempo. Elige v4 cuando quieras un identificador opaco y ampliamente disponible; elige v7 cuando el orden temporal beneficie almacenamiento o consultas y revelar el momento no sea un problema.

Diferencias principales

Propiedad UUID v4 UUID v7
Base Aleatoria o pseudoaleatoria Tiempo Unix en ms más aleatoriedad
Orden temporal No Sí, por los bits principales
Momento visible No está incorporado Puede extraerse aproximadamente
Versión en el texto Primer carácter del tercer grupo es 4 Es 7
Herramienta actual Disponible No disponible todavía

En v4, los campos fijos de versión y variante dejan 122 bits para datos aleatorios. En v7, el RFC 9562 asigna los 48 bits más significativos al número de milisegundos desde el epoch Unix y deja 74 bits, aparte de versión y variante, para aleatoriedad o mecanismos opcionales de monotonicidad.

Cuándo elegir v4

UUID v4 es una buena opción general si solo necesitas generar identificadores sin coordinación central. No contiene la hora ni identifica el equipo. Eso no lo convierte en un secreto: si el identificador concede acceso, sigue necesitando controles de autorización.

El generador UUID de Tools in a Tab genera exclusivamente v4 mediante la fuente criptográfica del navegador. No debes interpretar sus resultados como v7 ni como valores ordenables por fecha.

Cuándo elegir v7

El orden temporal de v7 puede mejorar la localidad de inserciones en índices y facilitar una ordenación aproximada sin otra columna. A cambio, el identificador revela el milisegundo de creación. Si ese dato es sensible o permite inferir actividad, usa v4 o conserva un identificador público separado.

Dos UUID v7 creados en el mismo milisegundo todavía requieren una implementación correcta para mantener unicidad y, si se exige, monotonicidad. No inventes una variante concatenando un timestamp y números aleatorios: usa una biblioteca que implemente RFC 9562 y prueba su comportamiento cuando el reloj retrocede.

Decisión rápida

  • Usa v4 para identificadores opacos, compatibilidad amplia y ausencia de hora incorporada.
  • Usa v7 para nuevos sistemas donde el orden temporal tenga una ventaja medida.
  • No cambies un esquema existente solo por novedad: revisa índices, exposición del timestamp, soporte de bibliotecas y migración.

Ambas versiones resuelven unicidad distribuida; la diferencia práctica es si el tiempo debe formar parte del identificador.