Los UUID están por todas partes: en bases de datos modernas, APIs, sistemas distribuidos, blockchain, frameworks como Laravel, Spring o Django, e incluso en documentos y dispositivos móviles.
Si has visto identificadores como:
550e8400-e29b-41d4-a716-446655440000
…has visto un UUID en acción.
Pero ¿qué son realmente? ¿Por qué tantas empresas han dejado de usar IDs autoincrementales? ¿Qué ventajas y desventajas tienen? Aquí te lo explico de manera clara, moderna y con ejemplos que puedes aplicar hoy mismo.
Qué es un UUID (explicación clara)
Un UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único en todo el universo sin necesidad de una base de datos central.
En otras palabras:
Cualquier sistema puede generar un UUID sin riesgo real de colisión.
Esto permite que múltiples servidores, microservicios o dispositivos creen registros sin coordinarse entre sí.
Ejemplo de UUID real
4e12fa06-5f7b-4e2f-94c8-22dfb3d8d61d
Formatos más usados: UUID v1, v4 y v7
UUID v1 (con marca de tiempo)
Incluye timestamp y MAC del dispositivo. Prácticamente no se usa hoy por razones de privacidad.
UUID v4 (aleatorio)
El más común actualmente. Generado a partir de números aleatorios criptográficamente seguros.
UUID v7 (secuencial basado en timestamp)
El nuevo estándar recomendado desde 2023–2024. Combina:
- ordenabilidad (ideal para índices)
- baja colisión
- privacidad
- rendimiento superior
Muchos sistemas modernos ya están migrando a UUIDv7.
UUID vs Autoincremental (tabla comparativa responsive)
| Característica | UUID | ID Autoincremental |
|---|---|---|
| Unicidad global | Sí | No (solo dentro de la tabla) |
| Generación distribuida | Sí, no necesita servidor central | No, depende de la base de datos |
| Orden natural | Solo UUIDv7 | Sí |
| Riesgo de fuga de datos | No expone volumen ni secuencia | Alta exposición (ID incremental revela datos) |
| Colisiones | Prácticamente nulas | Ninguna dentro de la BD |
| Rendimiento | UUIDv4: medio · UUIDv7: alto | Muy alto |
| Uso recomendado | Sistemas distribuidos, APIs, microservicios | Aplicaciones sencillas en un solo servidor |
Ejemplos reales generando UUID
JavaScript
crypto.randomUUID();
Python
import uuid
uuid.uuid4()
PostgreSQL
SELECT gen_random_uuid();
MySQL
SELECT UUID();
Ventajas reales de usar UUID
1. Escalabilidad horizontal inmediata
Cualquier servidor puede generar IDs únicos sin preguntar a la base de datos.
2. Seguridad: no filtra cuántos usuarios tienes
Un ID incremental como 15234 expone volúmenes internos de datos.
Un UUID no revela nada.
3. Ideal para APIs públicas
Nunca quieres exponer IDs autoincrementales en rutas como:
GET /usuarios/15123
Con UUID:
GET /usuarios/6b4f85c8-34c2-4cdf-9e24-d50c998fd718
Mucho más seguro.
4. Perfecto para sistemas distribuidos o microservicios
Cada servicio puede generar sus propios IDs sin colisión ni coordinación.
Desventajas (y cómo mitigarlas)
1. Rendimiento inferior en índices (UUIDv4)
UUIDv4 es completamente aleatorio → hace saltar páginas en disco → más lento.
Solución: usa UUIDv7
Está diseñado para ordenarse cronológicamente → índice mucho más rápido.
2. Ocupan más espacio
UUID → 128 bits INT → 32 bits BIGINT → 64 bits
El tradeoff es aceptable en sistemas modernos.
UUIDv7: la nueva generación recomendada
UUIDv7 será el estándar de facto en pocos años. Combina:
- orden temporal
- privacidad
- alto rendimiento
- compatibilidad universal
Ejemplo de UUIDv7 generado:
019f90e4-e8c7-7f52-9e8c-935d7ed8a1bf
Ejemplo práctico de uso en Base de Datos
PostgreSQL
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
CREATE TABLE usuarios (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
nombre TEXT NOT NULL
);
MySQL
CREATE TABLE usuarios (
id CHAR(36) PRIMARY KEY DEFAULT (UUID()),
nombre VARCHAR(255)
);
API Example
POST /api/v1/usuarios
{
"id": "019f90e4-e8c7-7f52-9e8c-935d7ed8a1bf",
"nombre": "Laura"
}
¿UUID o autoincrement? Decisión final
Elige UUID si:
- tu sistema crecerá
- usarás API públicas
- necesitas privacidad
- usas microservicios
- tienes múltiples nodos escribiendo a la vez
Elige autoincrement si:
- la app es pequeña
- solo hay un servidor
- no hay exposición pública de IDs
Convierte, limpia y valida UUIDs fácilmente
Nuestras herramientas te permiten manipular texto, JSON y datos estructurados sin errores ni caracteres ocultos.
Abrir JSON Formatter