UUID Generator

Comparación UUID v4 vs v7: Cuándo Usar Cada Uno

Diferencias entre UUID v4 (aleatorio) y v7 (ordenado por tiempo). Estructura de bits, impacto en rendimiento B-tree, comparación con ULID y casos de uso.

100% del lado del cliente. Tus datos nunca salen de tu navegador.

Resumen de UUID v4 y v7

Tanto UUID v4 como v7 son identificadores de 128 bits formateados como 32 caracteres hexadecimales agrupados en formato 8-4-4-4-12. La diferencia está en el contenido de esos bits.

UUID v4 se ve así:

f47ac10b-58cc-4372-a567-0e02b2c3d479
         ^^^^
         nibble de versión = 4

UUID v7 se ve así:

018e2b3c-d4a1-7f2e-b8c9-1234567890ab
^^^^^^^^^^^^^
48 bits de tiempo Unix ms
              ^
              nibble de versión = 7

Esta diferencia estructural tiene implicaciones reales de rendimiento para bases de datos.

UUID v4: Estructura

UUID v4 asigna 122 bits a la aleatoriedad. Los 6 bits restantes están reservados:

xxxxxxxx-xxxx-4xxx-[89ab]xxx-xxxxxxxxxxxx

UUID v7: Estructura

UUID v7 fue estandarizado por RFC 9562 (mayo 2024). Los primeros 48 bits son el tiempo Unix en milisegundos, seguidos de bits de versión y datos aleatorios:

[48 bits tiempo Unix ms][4 bits versión = 7][12 bits aleatorios][2 bits variante][62 bits aleatorios]

El prefijo de tiempo Unix de 48 bits significa que los UUID generados en el mismo milisegundo tienen los bits más significativos casi identicos, y los UUID generados posteriormente son lexicograficamente mayores. Esta propiedad hace que v7 sea ideal para indices B-tree.

Por qué los UUID Aleatorios Reducen el Rendimiento de Base de Datos?

Los indices B-tree (usados por PostgreSQL, MySQL, SQL Server y otros) mantienen un orden secuencial. Con UUID v4, las nuevas claves se distribuyen uniformemente al azar en todo el espacio de 128 bits. La nueva clave casi nunca esta al final del indice, lo que causa constantes divisiones de página.

Con UUID v7, las nuevas claves siempre son mayores que las anteriores (dentro del mismo milisegundo). Las inserciones van a la página hoja más a la derecha del B-tree, las páginas se llenan secuencialmente y las divisiones son raras.

Que Versión Usar Cuando

Usa UUID v4 para:

Usa UUID v7 para:

Usa ULID cuando: