Gerador de UUID v7

Gere UUID v7 em massa no seu navegador — o padrão RFC 9562 que embute um timestamp de 48 bits em milissegundos para que os IDs possam ser ordenados pela ordem de criação. Compatível com formato padrão, maiúsculas, sem hífens, com chaves e URN, encaixando diretamente em colunas UUID já existentes.

UUID v7 vs. UUID v4 vs. ULID

Formato Comprimento Ordenável pela ordem de criação Compatível com colunas UUID existentes Descrição
UUID v7 36 caracteres (incluindo 4 hífens) Sim (os primeiros 48 bits são um timestamp em milissegundos) Sim (tipo UUID padrão, mantendo a notação hexadecimal) Padronizado na RFC 9562. Combina um timestamp Unix com bits aleatórios, permitindo ordenação por criação sem perder compatibilidade com a infraestrutura UUID existente. É o formato que esta ferramenta gera.
UUID v4 36 caracteres (incluindo 4 hífens) Não (totalmente aleatório) Sim (tipo UUID padrão) Identificador de 128 bits totalmente aleatório, padronizado na RFC 9562. Não contém informação sobre sua origem e é a variante mais utilizada.
ULID 26 caracteres Sim (os primeiros 10 caracteres são um timestamp) Não (Base32 exige um tipo de coluna separado) Especificação independente do padrão UUID (RFC 4122/9562) que usa o Base32 de Crockford. Mais curto que o UUID v7, mas não pode ser gravado diretamente em uma coluna UUID nativa.

O que é o UUID v7

O UUID v7 é um novo UUID (Universally Unique Identifier) ordenável por tempo, normalizado pelo IETF na RFC 9562 em maio de 2024. O UUID v4, por muito tempo a versão mais difundida, é um valor de 128 bits inteiramente aleatório que não deixa pista alguma sobre a ordem em que os identificadores foram criados; o UUID v7, ao contrário, traz nos seus 48 primeiros bits uma marca de tempo Unix em milissegundos, de modo que basta ordenar as cadeias para dispô-las na ordem em que foram geradas. Os bits restantes são preenchidos com valores aleatórios, assim a unicidade se mantém mesmo que vários sejam produzidos dentro do mesmo milissegundo.

Esta ferramenta gera UUID v7 dentro do navegador por meio da Web Crypto API e os emite em lote na forma que você escolher: padrão, em maiúsculas, sem hifens, entre chaves ou como URN. A notação é plenamente compatível com as colunas de banco de dados que já guardam UUID v4, de modo que você pode armazenar os valores sem mudar o tipo da coluna. Se quiser conferir que os valores realmente se alinham pela marca temporal, o decodificador de UUID v7 extrai para você a hora embutida.

Como gerar UUID v7

  1. Indique quantos precisa Digite o número de UUID v7 que quer de uma vez. Você pode pedir vários ao mesmo tempo ao preparar dados de teste em lote.
  2. Escolha a forma de saída Opte por padrão, maiúsculas, sem hifens, entre chaves ou URN, conforme o banco de dados ou o sistema que vai guardar os valores.
  3. Clique em gerar São produzidos na hora pela Web Crypto API dentro do seu navegador e listados no painel de resultados. Nada é enviado a um servidor.
  4. Copie os resultados Pegue-os um a um com o botão de copiar, ou use copiar tudo para levar a lista inteira para a área de transferência.

Dicas para aproveitar melhor

  • Cada UUID v7 é gerado no próprio navegador usando a Web Crypto API — nada é enviado aos servidores do toolbase.cc.
  • Como os primeiros 48 bits de um UUID v7 são um timestamp Unix em milissegundos, basta ordenar os valores gerados como texto para obter a ordem cronológica de criação.
  • Um UUID v7 pode ser gravado diretamente em qualquer coluna que já armazene valores UUID v4 (uma coluna CHAR(36), o tipo uuid nativo do PostgreSQL etc.), sem exigir mudanças de esquema na migração.
  • O formato "sem hífens" é útil para segmentos de caminho de URL ou nomes de arquivo, enquanto o formato "com chaves" corresponde à notação GUID usada no COM/registro do Windows.
  • Se estiver em dúvida entre UUID v7 e ULID (Base32 de Crockford, 26 caracteres), prefira UUID v7 quando o sistema já assumir uma coluna UUID nativa, e ULID quando a prioridade for a string mais curta possível.

Quando o UUID v7 ajuda

Projetar a chave primária de um banco de dados

Como as linhas tendem a ser inseridas em ordem cronológica e não ao acaso, a fragmentação do índice B-tree fica menor do que com UUID v4, e você pode continuar usando a coluna UUID que já tem.

Emitir identificadores num sistema distribuído

Vários servidores ou microsserviços podem gerar cada um identificadores únicos e ordenados por tempo de forma independente, sem depender de um emissor central de sequências.

Identificadores de logs e eventos

Usar UUID v7 em logs de acesso ou históricos de eventos permite deduzir aproximadamente quando algo aconteceu apenas pelo identificador, sem precisar de uma coluna de marca temporal à parte.

Criar dados de teste e registros fictícios em lote

Ao carregar um ambiente de desenvolvimento ou de homologação com muitas linhas fictícias, gere um lote e copie-o direto para comandos SQL INSERT ou para uma carga de teste de API.

Examinar o que você gerou

Para confirmar que um UUID v7 traz mesmo a marca de tempo esperada, use o decodificador de UUID v7; se o que você precisa é de um UUID v4 puramente aleatório, o gerador de UUID dá conta disso.

Termos relacionados ao UUID v7

UUID v7
A versão de UUID normalizada na RFC 9562 que guarda nos seus 48 primeiros bits uma marca de tempo Unix em milissegundos. Pode ser ordenada por tempo sem deixar de ser compatível com as colunas UUID existentes.
Identificador ordenável por marca temporal
Identificador que carrega consigo a hora da própria criação, de modo que ordenar os valores como cadeias ou números os dispõe na ordem em que ocorreram. UUID v7, ULID e Snowflake ID entram nessa categoria.
Diferença em relação ao UUID v4
O UUID v4 é aleatório nos seus 128 bits e nada diz sobre a ordem, ao passo que os 48 primeiros bits de um UUID v7 são uma marca de tempo e deixam ver a ordem de geração. A forma escrita — 36 caracteres hexadecimais — é a mesma nos dois.
Monotonicidade
Propriedade dos valores que crescem de forma constante na ordem em que são criados. Quando vários UUID v7 são produzidos dentro do mesmo milissegundo, a ordem pode depender só da parte aleatória conforme a implementação, de modo que a monotonicidade estrita depende dela e não é exigida pela especificação.
Localidade de índice
Tendência dos valores recém-inseridos a caírem perto dos dados existentes — normalmente no fim — no índice B-tree de um banco de dados. Como os valores de UUID v7 se alinham pela marca temporal, a localidade é alta e melhoram as divisões de página e a eficiência de cache na inserção em relação ao UUID v4 inteiramente aleatório.
RFC 9562
Documento de norma que define o UUID, publicado pelo IETF em maio de 2024. Substitui a antiga RFC 4122 e acrescenta as versões v6 e v7, ordenáveis por tempo, junto com a v8, que admite campos próprios.

Perguntas frequentes

A principal diferença é se o identificador pode ser ordenado pelo momento de criação. O UUID v4 é um valor de 128 bits totalmente aleatório, sem ordem inerente, enquanto o UUID v7 tem um timestamp Unix em milissegundos nos primeiros 48 bits, de modo que uma simples comparação de strings revela a ordem de criação.

Ambos são ordenáveis pelo momento de criação, mas diferem na representação. O UUID v7 permite migrar mantendo compatibilidade com colunas e bibliotecas do tipo UUID já existentes, enquanto o ULID usa um formato Base32 de Crockford independente, mais curto, de 26 caracteres. Escolha UUID v7 se o sistema já assume um tipo UUID nativo, e ULID se a prioridade for um identificador mais curto em um sistema novo.

Foi formalmente padronizado em maio de 2024 como a RFC 9562 do IETF. O mesmo documento acrescentou a variante v6, com timestamp reordenado, e a variante v7, baseada em timestamp Unix, junto aos já existentes UUID v1 a v5.

Sim. Um valor totalmente aleatório como o UUID v4 é inserido em posições aleatórias do índice, o que tende a fragmentar índices B-tree, enquanto o UUID v7 é ordenado aproximadamente por tempo, fazendo com que novas linhas sejam inseridas perto do fim do índice, melhorando o desempenho de inserção. O PostgreSQL 18 chegou a incluir uma função uuidv7() nativa, refletindo a adoção crescente entre os principais bancos de dados.
Tool-kun

Curiosidade — como o UUID v7 devolveu o tempo à família UUID

O UUID v7 foi padronizado em maio de 2024 como a RFC 9562 do IETF, a primeira grande revisão da especificação UUID desde a RFC 4122 original, de 2005 — cerca de duas décadas antes. Essa revisão acrescentou as variantes ordenáveis v6 e v7, além da variante v8 de campos personalizados, motivada por uma queixa antiga: a aleatoriedade total do UUID v4 prejudica a eficiência dos índices de banco de dados.

O design do UUID v7 se assemelha muito ao da nossa ferramenta irmã, o ULID: ambos colocam um timestamp em milissegundos no início e preenchem o restante com bits aleatórios. A diferença decisiva está na representação — o ULID adota um formato Base32 de Crockford de 26 caracteres, independente do padrão UUID, enquanto o UUID v7 mantém a notação hexadecimal de 36 caracteres que define o UUID desde a RFC 4122. Essa escolha permite que o UUID v7 se encaixe diretamente em colunas, bibliotecas e contratos de API do tipo UUID já existentes, sem qualquer alteração.

O suporte ao UUID v7 se espalhou rapidamente entre os principais bancos de dados e ambientes de execução logo após sua publicação. O PostgreSQL passou a incluir uma função uuidv7() nativa a partir da versão 18, e bibliotecas de outras linguagens e ORMs importantes vêm adicionando suporte ao v7 rapidamente. Equilibrar a conveniência de "ordenável por criação" com a compatibilidade de "não quebra o seu investimento em UUID existente" é exatamente o motivo pelo qual o UUID v7, junto com o ULID, tem sido adotado tão rápido.