UUID v4 vs v7: IDs aleatorios o IDs ordenados por tiempo

Guía de UUID v4 vs v7

UUID v4 vs v7 (y GUID vs UUID): cuál usar | We.Inc

En qué se diferencia UUID v7 de v4 según RFC 9562, por qué los IDs ordenados por tiempo van bien como claves de base de datos, qué es un GUID y una herramienta en el navegador para crear IDs v4 y v7 y decodificar el timestamp de un v7.

Ambos son identificadores de 128 bits escritos con 36 caracteres. Un UUID v4 son 122 bits aleatorios, así que los valores nuevos caen en cualquier punto de un índice ordenado. Un UUID v7 empieza con un timestamp Unix de 48 bits en milisegundos seguido de bits aleatorios, así que los valores se ordenan aproximadamente por momento de creación. RFC 9562 recomienda v7 frente a las versiones basadas en tiempo más antiguas, v1 y v6.

Comparación de v4 y v7

Elegir una versión de UUID es sobre todo una cuestión de base de datos. Las claves v4 aleatorias dispersan las inserciones por todo un índice, mientras que las claves v7 llegan en orden, igual que lo haría un número autoincremental, sin necesitar un contador central. Genera ambos tipos abajo y luego pega cualquier UUID para ver su versión y, en el caso de v7, el momento en que se creó.

Preguntas frecuentes

¿Cuál es la diferencia entre un GUID y un UUID?

Ninguna que importe en la práctica. RFC 9562 define los UUID y señala que también se conocen como GUID, Globally Unique Identifiers, el nombre que usan las herramientas de Microsoft. Un GUID generado por .NET o SQL Server es un UUID con el mismo formato de 36 caracteres.

¿UUID v7 es un estándar oficial?

Sí. RFC 9562, publicado en 2024, define las versiones 6, 7 y 8 junto a las antiguas y deja obsoleto RFC 4122, el documento que describía los UUID antes.

¿UUID v7 es lo bastante único?

Cada milisegundo tiene 74 bits aleatorios para repartir, que es más que suficiente para casi cualquier sistema. Una colisión exigiría crear cantidades enormes de IDs en el mismo milisegundo exacto.

¿Puedo recuperar el momento de creación de un UUID v7?

Sí. Los primeros 12 dígitos hexadecimales son el tiempo Unix en milisegundos. Pega uno en el decodificador de arriba para verlo como fecha, o interpreta tú mismo esos dígitos como un número hexadecimal.

¿Debo cambiar las claves v4 existentes a v7?

Normalmente no. Ambos son UUID válidos y pueden convivir en la misma columna, así que las filas nuevas pueden usar v7 mientras las antiguas conservan sus valores v4. Reescribir claves primarias implica reescribir todas las claves foráneas que apuntan a ellas.

Por qué el orden importa en las bases de datos

Cómo leer la estructura

Las ocho versiones de UUID

Versiones de UUID en RFC 9562

Código que puedes copiar

UUID v4 en el navegador o en Node

Integrado en los navegadores actuales en páginas seguras y en Node 19 y posteriores mediante el objeto global crypto. Devuelve una cadena de 36 caracteres.

UUID v7 sin librería

Escribe la hora actual en los primeros seis bytes y luego fija los bits de versión y variante. El resto sigue siendo aleatorio.

Leer la hora de un UUID v7

Los primeros 12 dígitos hexadecimales son milisegundos desde 1970, así que al interpretarlos obtienes un Date.

Generar y decodificar

Generar v4

Generar v7

Generado

Pulsa un botón para crear un UUID. Se crea en tu navegador y nunca se envía a ningún sitio.

Pega un UUID para decodificarlo

Versión: {v}

RFC 9562 (la estándar)

No es la variante RFC 9562

Creado: {v} (UTC)

Esta versión no lleva un timestamp Unix.

Eso no es un UUID. Se esperan 32 dígitos hexadecimales en grupos de 8-4-4-4-12.

Este es el UUID Nil: los 128 bits son cero.

Este es el UUID Max: los 128 bits son uno.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio