Generador de UUID v7

Genera en tu navegador UUID v7 en masa, el estándar RFC 9562 que incluye una marca de tiempo de 48 bits en milisegundos para que los ID se puedan ordenar por fecha de creación. Admite formato estándar, mayúsculas, sin guiones, con llaves y URN, y encaja directamente en tus columnas UUID existentes.

UUID v7 frente a UUID v4 y ULID

Formato Longitud Ordenable por fecha de creación Compatible con columnas UUID existentes Descripción
UUID v7 36 caracteres (incluidos 4 guiones) Sí (los primeros 48 bits son una marca de tiempo en milisegundos) Sí (tipo UUID estándar, notación hexadecimal) Estandarizado en RFC 9562. Combina una marca de tiempo Unix con bits aleatorios, logrando orden por fecha de creación sin perder compatibilidad con la infraestructura UUID existente. El formato que genera esta herramienta.
UUID v4 36 caracteres (incluidos 4 guiones) No (totalmente aleatorio) Sí (tipo UUID estándar) Identificador de 128 bits totalmente aleatorio, estandarizado en RFC 9562. No contiene información sobre su origen y es la variante más utilizada.
ULID 26 caracteres Sí (los primeros 10 caracteres son una marca de tiempo) No (Base32 requiere un tipo de columna independiente) Especificación independiente del estándar UUID (RFC 4122/9562) que usa Base32 de Crockford. Más corto que UUID v7, pero no se puede guardar directamente en una columna UUID nativa.

Consejos de uso

  • Cada UUID v7 se genera en el propio navegador mediante la API Web Crypto, sin enviar nada a los servidores de toolbase.cc.
  • Como los primeros 48 bits de un UUID v7 son una marca de tiempo Unix en milisegundos, basta con ordenar los valores como cadenas de texto para obtener el orden cronológico de creación.
  • Un UUID v7 se puede guardar directamente en cualquier columna que ya almacene valores UUID v4 (una columna CHAR(36), el tipo uuid nativo de PostgreSQL, etc.), sin necesidad de cambiar el esquema para migrar.
  • El formato "sin guiones" resulta práctico para segmentos de ruta en URL o nombres de archivo, mientras que el formato "con llaves" coincide con la notación GUID usada en COM/registro de Windows.
  • Si dudas entre UUID v7 y ULID (Base32 de Crockford, 26 caracteres), elige UUID v7 cuando tu sistema ya asume una columna UUID nativa, y ULID cuando priorices la cadena más corta posible.

Preguntas frecuentes

La diferencia clave es si el identificador se puede ordenar por fecha de creación. UUID v4 es un valor de 128 bits totalmente aleatorio sin orden inherente, mientras que UUID v7 tiene una marca de tiempo Unix en milisegundos en sus primeros 48 bits, por lo que una simple comparación de cadenas revela el orden de creación.

Ambos son ordenables por fecha de creación, pero difieren en su representación. UUID v7 permite migrar manteniendo la compatibilidad con columnas y bibliotecas de tipo UUID existentes, mientras que ULID usa un formato Base32 de Crockford independiente de 26 caracteres, más corto. Elige UUID v7 si tu sistema ya asume un tipo UUID nativo, y ULID si la prioridad es un identificador más corto para un sistema nuevo.

Se estandarizó formalmente en mayo de 2024 como RFC 9562 del IETF. Ese mismo documento añadió la variante v6, con la marca de tiempo reordenada, y la variante v7, basada en la marca de tiempo Unix, junto a los ya existentes UUID v1 a v5.

Sí. Un valor totalmente aleatorio como UUID v4 se inserta en posiciones aleatorias del índice, lo que tiende a fragmentar los índices B-tree, mientras que UUID v7 se ordena aproximadamente por tiempo, de modo que las filas nuevas se añaden cerca del final del índice y mejora el rendimiento de inserción. PostgreSQL 18 incluso incorporó una función uuidv7() nativa, lo que refleja su adopción generalizada entre las principales bases de datos.
ツールくん

A propósito — cómo UUID v7 devolvió el tiempo a la familia UUID

UUID v7 se estandarizó en mayo de 2024 como RFC 9562 del IETF, la primera revisión importante de la especificación UUID desde el RFC 4122 original de 2005, unas dos décadas antes. Esa revisión añadió las variantes ordenables v6 y v7, junto con la variante v8 de campos personalizados, motivada por una queja de larga data: la aleatoriedad total de UUID v4 perjudica la eficiencia de los índices de bases de datos.

El diseño de UUID v7 se parece mucho al de nuestra herramienta hermana, ULID: ambos colocan una marca de tiempo en milisegundos al principio y rellenan el resto con bits aleatorios. La diferencia decisiva está en la representación: ULID adopta un formato Base32 de Crockford de 26 caracteres independiente del estándar UUID, mientras que UUID v7 conserva la notación hexadecimal de 36 caracteres que define a los UUID desde RFC 4122. Esa elección permite que UUID v7 encaje directamente en columnas, bibliotecas y contratos de API de tipo UUID ya existentes sin ningún cambio.

El soporte para UUID v7 se extendió rápidamente entre las principales bases de datos y entornos de ejecución poco después de su publicación. PostgreSQL incorporó una función uuidv7() nativa a partir de la versión 18, y bibliotecas de otros lenguajes y ORM importantes han añadido soporte para v7 con rapidez. Equilibrar la conveniencia de "ordenable por fecha de creación" con la compatibilidad de "no rompe tu inversión en UUID existente" es precisamente la razón por la que UUID v7, junto con ULID, se ha adoptado tan rápido.