UUID
Concepto de Desarrollo web en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 14 de julio de 2026
Un UUID (Universally Unique Identifier) es un identificador de 128 bits representado como una cadena de 32 dígitos hexadecimales agrupados en cinco secciones separadas por guiones: 550e8400-e29b-41d4-a716-446655440000. Su objetivo es generar identificadores únicos sin necesidad de coordinación entre sistemas, lo que los hace ideales para bases de datos distribuidas, APIs y cualquier contexto donde varios servidores puedan crear registros simultáneamente.
Versiones de UUID
Existen varias versiones; las más usadas en desarrollo moderno son:
UUID v4 (aleatorio) Genera 122 bits de forma totalmente aleatoria. Es el más usado por su simplicidad: no depende de reloj ni de red. El campo de versión (4) y dos bits de variante son los únicos bits fijos.
f47ac10b-58cc-4372-a567-0e02b2c3d479
UUID v7 (ordenable por tiempo) Introduce un timestamp en milisegundos en los primeros 48 bits, seguido de bits aleatorios. Esto permite que los registros se inserten en orden cronológico, mejorando enormemente el rendimiento de los índices B-tree en bases de datos como PostgreSQL o MySQL.
01906e3b-8a72-7c3d-9e1f-4b2c3d5e6f7a
↑ timestamp ms
UUID v1 (MAC + tiempo) Usa la dirección MAC del equipo y el tiempo para garantizar unicidad. Se usa menos porque expone la MAC de la máquina y los UUIDs generados en el mismo momento pueden predecirse.
¿Por qué UUID en lugar de un entero autoincremental?
| Característica | UUID v4/v7 | Entero autoincremental |
|---|---|---|
| Generación sin servidor | ✅ El cliente puede crear el ID | ❌ Requiere petición al servidor/BD |
| Sistemas distribuidos | ✅ Sin colisiones entre nodos | ⚠️ Requiere coordinación |
| Tamaño en disco | 16 bytes (UUID binario) | 4–8 bytes |
| Legibilidad | Difícil de memorizar | Predecible (expone volumen) |
| Rendimiento en índices | ✅ v7 / ⚠️ v4 fragmenta | ✅ Excelente |
El principal motivo para usar UUID es permitir que el cliente (frontend, app móvil, microservicio) genere el ID del recurso antes de enviarlo al servidor, sin riesgo de colisión.
Cómo generar un UUID
JavaScript (navegador y Node.js ≥ 14.17):
const id = crypto.randomUUID(); // UUID v4
// "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
Python:
import uuid
id = str(uuid.uuid4())
SQL (PostgreSQL ≥ 13):
SELECT gen_random_uuid();
Línea de comandos (Linux/macOS):
uuidgen
UUID y Base64
En algunos sistemas se codifica el UUID en Base64 para acortar la representación (de 36 caracteres a 22). Esto reduce el tamaño en URLs y headers, aunque a costa de legibilidad.
Errores comunes
- Almacenar UUID como varchar en lugar de binario: guardar
"550e8400-e29b-41d4-a716-446655440000"como texto ocupa 36 bytes; en cambio,BINARY(16)ocupa 16 bytes y las búsquedas son más rápidas. - Usar v4 donde importa el orden: si los registros se van a paginar por fecha de creación, UUID v7 es mejor opción porque el orden del UUID coincide con el orden de inserción.
- Tratar el UUID como secreto: los UUIDs son identificadores, no tokens de seguridad. Para tokens de sesión, usa valores criptográficamente seguros de longitud adecuada.
Conceptos relacionados
También en Desarrollo web
Preguntas frecuentes
¿Puede repetirse un UUID v4?
¿Qué diferencia hay entre UUID v4 y v7?
¿Se puede usar un UUID como clave primaria en una base de datos?
Ver todas las herramientas de Utilidades.