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.

Qué es el UUID v7

El UUID v7 es un nuevo UUID (Universally Unique Identifier) ordenable por tiempo, normalizado por el IETF en el RFC 9562 en mayo de 2024. El UUID v4, durante mucho tiempo la versión más extendida, es un valor de 128 bits enteramente aleatorio que no deja pista alguna sobre el orden en que se crearon los identificadores; el UUID v7, en cambio, lleva en sus 48 primeros bits una marca de tiempo Unix en milisegundos, de modo que basta ordenar las cadenas para disponerlas en el orden en que se generaron. Los bits restantes se rellenan con valores aleatorios, así que la unicidad se mantiene aunque se produzcan varios dentro del mismo milisegundo.

Esta herramienta genera UUID v7 dentro del navegador mediante la Web Crypto API y los emite en bloque en la forma que elija: estándar, en mayúsculas, sin guiones, entre llaves o como URN. La notación es plenamente compatible con las columnas de base de datos que ya guardan UUID v4, de manera que puede almacenar los valores sin cambiar el tipo de columna. Si desea comprobar que los valores se alinean realmente por marca temporal, el decodificador de UUID v7 extraerá por usted la hora incrustada.

Cómo generar UUID v7

  1. Indique cuántos necesita Escriba el número de UUID v7 que quiere de una vez. Puede pedir varios a la vez cuando prepare datos de prueba en bloque.
  2. Elija la forma de salida Escoja estándar, mayúsculas, sin guiones, entre llaves o URN, según la base de datos o el sistema que vaya a guardar los valores.
  3. Pulse generar Se producen al instante mediante la Web Crypto API dentro de su navegador y se listan en el panel de resultados. No se envía nada a un servidor.
  4. Copie los resultados Tómelos uno a uno con el botón de copiar, o use copiar todo para llevar la lista completa al portapapeles.

Consejos para aprovecharla mejor

  • 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.

Cuándo ayuda el UUID v7

Diseñar la clave primaria de una base de datos

Como las filas tienden a insertarse en orden cronológico y no al azar, la fragmentación del índice B-tree se mantiene menor que con UUID v4, y puede seguir usando la columna UUID que ya tiene.

Emitir identificadores en un sistema distribuido

Varios servidores o microservicios pueden generar cada uno identificadores únicos y ordenados por tiempo de forma independiente, sin depender de un emisor central de secuencias.

Identificadores de registros y eventos

Usar UUID v7 en registros de acceso o historiales de eventos permite deducir aproximadamente cuándo ocurrió algo solo a partir del identificador, sin necesidad de una columna de marca temporal aparte.

Crear datos de prueba y registros ficticios en bloque

Al cargar un entorno de desarrollo o de ensayo con muchas filas ficticias, genere un lote y cópielo directamente en sentencias SQL INSERT o en una carga de prueba de API.

Examinar lo que ha generado

Para confirmar que un UUID v7 lleva de verdad la marca de tiempo esperada, use el decodificador de UUID v7; si lo que necesita es un UUID v4 puramente aleatorio, el generador de UUID se encarga de ello.

Términos relacionados con el UUID v7

UUID v7
La versión de UUID normalizada en el RFC 9562 que guarda en sus 48 primeros bits una marca de tiempo Unix en milisegundos. Puede ordenarse por tiempo sin dejar de ser compatible con las columnas UUID existentes.
Identificador ordenable por marca temporal
Identificador que lleva consigo la hora de su propia creación, de modo que ordenar los valores como cadenas o números los dispone en el orden en que ocurrieron. UUID v7, ULID y Snowflake ID entran en esta categoría.
Diferencia con el UUID v4
El UUID v4 es aleatorio en sus 128 bits y nada dice del orden, mientras que los 48 primeros bits de un UUID v7 son una marca de tiempo y dejan ver el orden de generación. La forma escrita —36 caracteres hexadecimales— es la misma en ambos.
Monotonía
Propiedad de los valores que crecen de forma constante en el orden en que se crean. Cuando se producen varios UUID v7 dentro del mismo milisegundo, el orden puede depender solo de la parte aleatoria según la implementación, así que la monotonía estricta depende de esta y no la exige la especificación.
Localidad de índice
Tendencia de los valores recién insertados a caer cerca de los datos existentes —normalmente al final— en el índice B-tree de una base de datos. Como los valores de UUID v7 se alinean por marca temporal, la localidad es alta y mejoran las divisiones de página y la eficiencia de caché al insertar frente al UUID v4 enteramente aleatorio.
RFC 9562
Documento de norma que define el UUID, publicado por el IETF en mayo de 2024. Sustituye al anterior RFC 4122 y añade las versiones v6 y v7, ordenables por tiempo, junto con la v8, que admite campos propios.

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.
Tool-kun

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.