🆔

UUID

UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único sin necesidad de coordinación central. Con 5.3 × 10^36 combinaciones posibles, la probabilidad de colisión es tan baja que podés generar millones de UUIDs por segundo durante siglos sin duplicados.

Ejemplos

  • UUID v4: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d (completamente aleatorio)
  • UUID v7: 018e8c4e-1a2b-7c3d-8e4f-9a0b1c2d3e4f (ordenable por timestamp)
  • Postgres: CREATE TABLE users (id UUID PRIMARY KEY DEFAULT gen_random_uuid());

Preguntas frecuentes

¿Puede haber colisión entre UUIDs?

Teóricamente sí, pero con probabilidad astronómicamente baja. En UUID v4 necesitarías generar 2.71 × 10^18 UUIDs para tener 50% de chance de una colisión. En la práctica es imposible.

¿Los UUIDs son más lentos que integers en bases de datos?

UUID v4 sí, por fragmentación de índices. UUID v7 resuelve esto siendo ordenable, logrando performance similar a BIGSERIAL en Postgres con las ventajas de generación distribuida.

¿Puedo usar UUIDs como tokens de autenticación?

Técnicamente sí, pero no es recomendado. Para tokens de sesión o API keys usá generadores específicos con más entropía (256+ bits) y considera agregar un prefijo para identificar tipo de token.