Docuboxer
Por Sergio Alonzo Piña··5 min de lectura

UUID v4 o v7: cuál usar como identificador

Compara los dos formatos más usados, entiende qué pasa en un índice con cada uno y decide con una regla corta según el uso.

Usa UUID v7 para claves de tablas con muchas inserciones, donde importa el orden de creación, y v4 cuando el identificador sea público y no deba revelar cuándo se creó. Con el generador de UUID puedes crear v4, v7 o el UUID nulo, hasta 10.000 de una vez, en minúsculas, mayúsculas o sin guiones, y todo ocurre en tu navegador.

¿Qué es un UUID?

Un UUID es un identificador de 128 bits que se escribe como 32 caracteres hexadecimales separados por guiones, por ejemplo 550e8400-e29b-41d4-a716-446655440000. Su gracia es que cualquiera puede generarlo sin consultar a nadie y es extremadamente improbable que dos coincidan. Los formatos actuales están definidos en el RFC 9562.

UUID v4 frente a v7

v4v7
Cómo se formaCasi todo aleatorio (122 bits al azar)Marca de tiempo en milisegundos y bits aleatorios
OrdenSin ordenOrdenable por creación
Revela la fecha de creaciónNoSí, con precisión de milisegundo
Uso típicoTokens, identificadores públicos, tablas pequeñasClaves primarias en tablas con muchas inserciones

Un v7 empieza con 48 bits de marca de tiempo Unix en milisegundos. Por eso los UUID v7 generados uno tras otro salen en orden creciente. En el generador de Docuboxer, varios UUID v7 creados dentro del mismo milisegundo también salen en orden, porque se usa un contador de 12 bits en ese milisegundo, uno de los métodos que prevé el RFC.

¿Por qué importa el orden en una base de datos?

Las bases de datos guardan los índices en estructuras ordenadas. Con claves aleatorias (v4), cada fila nueva cae en un punto cualquiera del índice, lo que obliga a tocar páginas por todas partes y a fragmentarlo. Con claves que crecen (v7), las filas nuevas se agregan al final, como ocurre con un entero autoincremental. La diferencia solo se nota con muchas inserciones: en una tabla pequeña, cualquiera de los dos funciona. Y mide en tu caso, porque el efecto depende del motor y de la carga.

Qué revela cada uno

Un v7 deja ver cuándo se creó el registro. Si el identificador va en una URL pública, como /pedido/<uuid>, cualquiera que lo vea puede saber aproximadamente cuándo se hizo ese pedido. Si eso importa, usa v4 para lo público y v7 para la clave interna.

Un v4 generado con una fuente criptográficamente segura es impredecible, pero un UUID no sustituye una comprobación de permisos: que nadie pueda adivinar la URL no significa que deba poder abrirla.

Cómo distinguir la versión a simple vista

El primer carácter del tercer grupo indica la versión: en 550e8400-e29b-41d4-a716-446655440000 es un 4, así que es un v4, y en un v7 sería un 7. El primer carácter del cuarto grupo es 8, 9, a o b en los UUID que define el RFC (la "variante"). En un v7, los primeros 12 caracteres hexadecimales son la marca de tiempo, por lo que dos v7 creados con segundos de diferencia comparten casi el mismo comienzo.

¿UUID o entero autoincremental?

  • UUID: se genera sin coordinar con la base de datos, lo que facilita crear registros en varios servicios o en el cliente, y evita exponer cuántos registros hay. Ocupa más espacio y es más difícil de leer.
  • Entero autoincremental: pequeño, rápido y fácil de depurar, pero obliga a pedirle el número a la base de datos y deja ver el volumen en una URL pública.

No hay una respuesta universal. Si ya usas UUID, el v7 te da el orden de un entero sin perder la generación independiente.

Cómo generarlos paso a paso

  1. Abre el generador de UUID y elige la versión: v4, v7 o nil.
  2. Elige el formato: minúsculas, mayúsculas o sin guiones.
  3. Elige cuántos: con los atajos de 1, 10, 100 o 1000, o escribe una cantidad de hasta 10.000.
  4. Pulsa generar, copia uno solo o descarga todos en un .txt.

El UUID nil es el formado solo por ceros (00000000-0000-0000-0000-000000000000). Sirve como valor vacío o marcador.

Consejos de uso

  • Si tu base de datos tiene un tipo uuid nativo, úsalo en lugar de guardar el texto: ocupa 16 bytes en vez de 36 caracteres.
  • Elige un formato de texto y mantenlo: mezclar mayúsculas, minúsculas y con o sin guiones complica las comparaciones.
  • Para convertir una marca de tiempo a fecha, por ejemplo la de un UUID v7 o la de un token, puedes usar el conversor de timestamp y leer el timestamp Unix y el problema del 2038.

Preguntas frecuentes

¿Cuál es la diferencia entre UUID v4 y v7?

El v4 es casi todo aleatorio y no se ordena. El v7 empieza con una marca de tiempo en milisegundos, así que los UUID creados en secuencia salen ordenados, y deja ver cuándo se crearon.

¿Cuál conviene como clave primaria?

En tablas con muchas inserciones, v7, porque las filas nuevas se agregan al final del índice. En tablas pequeñas, cualquiera sirve, y si el identificador es público y no debe revelar la fecha, v4.

¿Un UUID es secreto o seguro como token?

Un v4 generado con una fuente criptográficamente segura es impredecible, pero un UUID no reemplaza la autorización. No lo uses como única protección de acceso.

¿Qué es el UUID nil?

Es el UUID formado solo por ceros. Se usa como valor vacío o marcador.

¿Se pueden repetir dos UUID?

Es extremadamente improbable con una fuente aleatoria correcta, pero no imposible. Las bases de datos con una restricción de unicidad lo detectan si ocurriera.

Genera UUID v4, v7 o nil

Hasta 10.000 de golpe, en mayúsculas, minúsculas o sin guiones. 100% local, gratis y sin registro.

Abrir Generador de UUID →

Herramientas relacionadas

También te puede interesar: qué es Base64 y para qué sirve, mejores herramientas para developers 2026, Pasar de binario a decimal y hexadecimal a mano y Qué hay dentro de un JWT y cómo leerlo.