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.