Tools mentioned in this article
Open the browser-based tool while you read and try the workflow immediately.
“¿Este ID colisionará alguna vez con el de otra persona?”
Al manejar datos en cualquier sistema, el diseño de los “ID (identificadores)” es un paso inevitable.
“¿Puedo simplemente usar números secuenciales simples para los ID de usuario?”
“¿Qué pasa si mis datos crecen y colisionan con los datos de otro servidor…?”.

UUID (Identificador Único Universal) es la “cadena mágica” que despeja esas preocupaciones, permitiéndote emitir instantáneamente un “ID único en el mundo” en cualquier entorno distribuido sin una gestión central.
UUID: Un “milagro” en 128 bits
Un UUID contiene una cantidad masiva de información en 128 bits.
La cantidad de combinaciones posibles es tan grande que se dice que incluso si cada persona en la Tierra generara mil millones de UUID cada segundo durante toda su vida, la probabilidad de un duplicado sería cercana a cero.
Este abrumador sentido de seguridad es precisamente la razón por la que podemos compartir ID con confianza a través de bases de datos y microservicios.
¿Cuál debería usar? Puntos clave para elegir una versión de UUID
Si bien hay varios tipos de UUID, los desarrolladores modernos deberían recordar principalmente estos tres:
- Versión 4: Puramente aleatoria
- Carácter: Completamente aleatorio e impredecible.
- Cuándo usar: Para ID de sesión, nombres de archivos temporales o cualquier cosa donde solo necesites algo único e “impredecible”.
- Versión 7: UUID ordenable por tiempo
- Carácter: Incluye una marca de tiempo al principio.
- Cuándo usar: Claves principales de la base de datos (PK). Debido a que se ordenan por orden de registro, mejoran la eficiencia de búsqueda de la base de datos (indexación) al tiempo que proporcionan los beneficios de un UUID. Esta es la opción más “candente”, estandarizada en 2024.
- Versión 1: Identidad de la máquina (dirección MAC)
- Carácter: Revela qué máquina lo creó y cuándo.
- Cuándo usar: Para sistemas heredados o casos en los que necesites rastrear específicamente un dispositivo en particular.
Si no estás seguro, simplemente pruébalo
“¿Cómo se ve un UUID?” “Quiero crear 100 UUID v4 a la vez”.
En esos momentos, prueba nuestro Generador de UUID.
Cada vez que presionas el botón, nace un nuevo UUID en un instante. Mirar esas cadenas estériles pero confiables podría hacer que el vasto mundo de los sistemas distribuidos se sienta un poco más cercano.
Conclusión
Los UUID son como los “vínculos” que mantienen unidos a los sistemas dispersos.
Al elegir la versión óptima para tu caso de uso, puedes liberarte de la preocupación por las colisiones de ID. Concentra tu energía en implementar una lógica más valiosa y deja que las herramientas se encarguen de la garantía de unicidad.
Preguntas frecuentes
¿Es v4 realmente aleatorio?
Sí. De los 128 bits de un UUID v4, 122 proceden de valores aleatorios y los 6 restantes identifican la versión y la variante. En la práctica la probabilidad de colisión es despreciable, siempre que se use un generador de números aleatorios criptográficamente seguro. Si lo implementa a mano con algo como Math.random(), la aleatoriedad se degrada: utilice el generador de UUID de la biblioteca estándar de su lenguaje.
¿Debería migrar todos mis v4 existentes a v7?
No hace falta. La ventaja de v7 es que se ordena por tiempo, lo que mejora la localidad de los índices en base de datos. Si sus v4 actuales no causan problemas de rendimiento, no hay motivo para asumir el riesgo de una migración. En cambio, para tablas nuevas que usen UUID como clave primaria y reciban muchas escrituras, vale la pena empezar directamente con v7.
¿Pueden dos máquinas generar el mismo v4?
En teoría no es imposible, pero la probabilidad es extraordinariamente baja. Incluso generando mil millones de UUID por segundo durante décadas, la probabilidad de una sola colisión queda muy por debajo de lo que merece preocupación. Lo que sí conviene vigilar son los fallos de implementación: una semilla fija, o contenedores clonados que arrancan con el mismo estado inicial.
¿Qué es el nil UUID?
Es 00000000-0000-0000-0000-000000000000, con todos los bits a cero. Se usa a menudo como valor por defecto para «sin asignar», pero tenga en cuenta que una columna NOT NULL lo acepta sin problema, así que no podrá detectar un «olvidé asignarlo» mediante esa restricción.
¿Cómo valido el formato de un UUID?
Basta con una expresión regular que compruebe el patrón hexadecimal 8-4-4-4-12. Si además quiere confirmar la versión, revise el carácter 13 (versión) y el 17 (variante). Para inspeccionar la estructura de una cadena concreta puede usar el generador de UUID, que también permite comprobar el formato de lo que produce.