Gerador 🔒 Roda no seu navegador — nenhum dado é enviado

Gerador de UUID v7

Crie UUIDs versão 7 ordenados por tempo, que seguem a ordem de criação e são ideais para chaves primárias de banco de dados.

UUIDs gerados
Inspecionar um UUID

Gerar UUID v7 ordenado por tempo

O UUID v7 junta o melhor de dois mundos: é único sem coordenação, como um UUID aleatório, e segue a ordem de criação, como um ID autoincremental. Por isso é a versão que a maioria dos bancos de dados e ORMs recomenda hoje para chaves primárias.

Esta página abre o Gerador de UUID com a versão 7 selecionada. Os primeiros 48 bits vêm do seu relógio; o resto vem do gerador aleatório seguro do navegador.

Diagrama: as partes do UUID versão 7 01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10: timestamp de 48 bits em milissegundos, o dígito de versão 7, os bits de variante e 74 bits aleatórios.01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10versãovarianteTempo Unix (ms) · 480x01926f3a7c2b = 17284429568432024-10-09 03:02:36.843 UTC12bits aleatórios · 6248 + 4 + 12 + 2 + 62 = 128
Um UUID versão 7 começa com o horário de criação em milissegundos, então IDs novos ficam em ordem cronológica e funcionam bem com índices de banco de dados. O primeiro dígito do terceiro grupo é a versão, o primeiro do quarto grupo guarda os bits de variante e o resto é aleatório.

Por que a ordem importa para bancos de dados

A maioria dos bancos de dados relacionais armazena chaves primárias em uma árvore B. Uma chave v4 aleatória cai em algum ponto no meio do índice a cada inserção, forçando divisões de página e espalhando linhas relacionadas pelo disco. Uma chave v7 é quase sempre maior que a anterior, então as linhas novas são adicionadas no fim, exatamente como em uma sequência de inteiros. Em tabelas com milhões de linhas, a diferença na velocidade de inserção e no tamanho do índice é significativa.

v4, v7 e ULID comparados

UUID v4UUID v7ULID
Ordenável por tempoNãoSimSim
Bits aleatórios1227480
PadrãoRFC 9562RFC 9562Especificação da comunidade
Cabe em uma coluna UUIDSimSimPrecisa de conversão
Revela o momento de criaçãoNãoSimSim

Lendo o carimbo de tempo de volta

Cole um UUID v7 no inspetor abaixo do gerador e ele decodifica o horário embutido. Você também pode fazer isso à mão: os 12 primeiros dígitos hexadecimais, sem o hífen, são os milissegundos desde 1970. Para 01926f3a-7c2b-7d4e-…, isso dá 0x01926f3a7c2b = 1728442956843, ou seja, 9 de outubro de 2024 às 03:02:36.843 UTC.

UUID v7 em código

  • PostgreSQL 18+: uuidv7()
  • Python 3.14+: uuid.uuid7()
  • Java: a biblioteca uuid-creator, UuidCreator.getTimeOrderedEpoch()
  • Node.js: o pacote uuid, import { v7 } from 'uuid'
  • .NET 9+: Guid.CreateVersion7()

Quando a ordem por tempo não importa, o UUID v4 revela menos. Se você precisa da formatação no estilo Microsoft, veja o Gerador de GUID.

Guias relacionados