ESC
Developer

¿Qué es un UUID? Guía para Desarrolladores sobre Identificadores Únicos

Aprende qué son los UUID, cómo funcionan las diferentes versiones, cuándo usarlos y cómo generarlos en JavaScript, Python, PHP y SQL.

2026-06-25 8 min read Developer
UUID Guide: A Developer's Guide to Unique Identifiers

¿Qué es un UUID?

Un UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único en el espacio y el tiempo, sin necesidad de una autoridad central. El resultado es una cadena de 36 caracteres con el formato:

550e8400-e29b-41d4-a716-446655440000

Codifica 32 dígitos hexadecimales en cinco grupos separados por guiones: 8-4-4-4-12.

Probabilidad de colisión: Con UUID v4, la probabilidad de generar dos IDs idénticos es aproximadamente 1 en 5.3×1036. En la práctica, nunca ocurrirá en producción.

Versiones de UUID

UUID v1 — Basado en tiempo + MAC

Combina la marca de tiempo actual con la dirección MAC de la interfaz de red. Está ordenado cronológicamente pero revela la dirección MAC y la marca de tiempo exacta — un problema de privacidad.

UUID v4 — Aleatorio (el más usado)

Rellena 122 bits con datos aleatorios criptográficamente seguros. No requiere estado ni coordinación. La opción predeterminada para la mayoría de los casos.

Elección por defecto: Cuando alguien dice "usa un UUID", casi siempre se refiere a v4.

UUID v5 — Namespace + SHA-1

Determinista: el mismo namespace + nombre = mismo UUID siempre. Prefiere v5 sobre v3 (MD5 está obsoleto).

UUID v7 — Ordenado por tiempo (nuevo estándar)

Usa una marca de tiempo Unix en milisegundos en los bits más significativos. Los UUIDs son ordenables y mejoran dramáticamente el rendimiento de índices B-tree en bases de datos.

¿Por qué usar UUIDs?

  • Sin coordinación central: Cualquier cliente o microservicio puede generar un UUID de forma independiente.
  • Seguridad por opacidad: Los IDs enteros secuenciales exponen el volumen de datos. Los UUID no revelan nada.
  • Fusión de bases de datos: Las tablas con claves UUID se fusionan sin conflictos.
  • Generación offline: Las apps móviles pueden crear registros offline y sincronizar más tarde.
  • Estándar de la industria: Soporte nativo en todas las bases de datos y frameworks principales.

UUID vs Otros Tipos de ID

TipoTamañoOrdenableNotas
Auto-increment int4–8 bytesExpone el recuento; problemático en DBs distribuidas
UUID v416 bytes / 36 charsNoSoporte universal; orden aleatorio daña índices
UUID v716 bytes / 36 charsSí (ms)Lo mejor para claves primarias en DB
ULID26 charsSí (ms)Más corto, URL-safe; no es estándar oficial
NanoID~21 charsNoCorto y URL-safe; alfabet configurable

Cuándo NO usar UUIDs

  • Sobrecarga de almacenamiento: Una cadena UUID ocupa 36 bytes. Usa BINARY(16) en MySQL o el tipo nativo uuid en PostgreSQL.
  • Slugs de URL: Son demasiado largos y no memorables. Usa slugs legibles para URLs de cara al usuario.
  • Fragmentación de índices con v4: Para tablas con muchas escrituras indexadas por clave primaria, usa UUID v7 o ULID.
Consejo MySQL: Nunca almacenes UUIDs como VARCHAR(36) en tablas de alto volumen. Usa BINARY(16) con UUID_TO_BIN(uuid, 1).

Generar UUIDs en Código

JavaScript

const id = crypto.randomUUID(); // v4

Python

import uuid
id = str(uuid.uuid4())

PHP

use Ramsey\Uuid\Uuid;
$v4 = Uuid::uuid4()->toString();
$v7 = Uuid::uuid7()->toString();

SQL

-- MySQL: SELECT UUID();
-- PostgreSQL: SELECT gen_random_uuid();

Mejores Prácticas

  • Almacena como binary: BINARY(16) o tipo nativo uuid en PostgreSQL.
  • Usa v4 para la mayoría de los casos.
  • Usa v7 para claves primarias de base de datos.
  • Evita v1 en contextos sensibles a la privacidad.
  • Valida el formato UUID en la entrada.
  • Usa siempre minúsculas.
¿Necesitas generar UUIDs ahora mismo? Nuestro Generador de UUID crea UUIDs v4 y v7 en masa — copia al portapapeles instantáneamente.

Preguntas Frecuentes

¿Pueden dos UUIDs ser iguales?

Teóricamente sí. La probabilidad de colisión de v4 es aproximadamente 1 en 5.3×1036. En la práctica nunca ocurrirá en ningún sistema real.

¿v4 o v7 para claves primarias?

v7 para claves primarias de base de datos. v4 inserta en posiciones aleatorias en el índice B-tree, degradando el rendimiento. v7 garantiza inserciones al final del índice.

¿Son los UUID sensibles a mayúsculas?

No. Son insensibles a mayúsculas. Por convención, usa siempre minúsculas.

Genera UUIDs al Instante

Genera UUIDs v4 o v7 en masa, cópialos al portapapeles y úsalos en tus proyectos — sin servidor, sin rastreo, 100% del lado del cliente.

Abrir Generador de UUID