Gliora

UUID

Concepto de Desarrollo web en Utilidades, conectado con sus herramientas y conceptos vecinos.

Actualizado el 14 de julio de 2026

Herramienta Generador de UUID Genera identificadores únicos UUID v4. Abrir calculadora →

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ísticaUUID v4/v7Entero 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 disco16 bytes (UUID binario)4–8 bytes
LegibilidadDifícil de memorizarPredecible (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?
En teoría sí, pero la probabilidad es ínfima: hay 2¹²² valores posibles (~5,3 × 10³⁶). Para que se produzca una colisión con un 50 % de probabilidad necesitarías generar unos 2,7 × 10¹⁸ UUIDs, lo que está completamente fuera del alcance práctico.
¿Qué diferencia hay entre UUID v4 y v7?
UUID v4 es completamente aleatorio. UUID v7 incluye un timestamp de milisegundos al principio, lo que permite ordenar los registros cronológicamente y mejora el rendimiento en índices de bases de datos.
¿Se puede usar un UUID como clave primaria en una base de datos?
Sí, y es práctica habitual en sistemas distribuidos. La desventaja es que ocupa más espacio (16 bytes vs 4-8 de un entero) y los UUID v4 fragmentan los índices. UUID v7 resuelve ese problema al ser ordenable por tiempo.

Ver todas las herramientas de Utilidades.