UUID v4 vs v7: IDs aleatórios ou IDs ordenados por tempo

Guia UUID v4 vs v7

UUID v4 vs v7 (e GUID vs UUID): qual usar | We.Inc

Como o UUID v7 difere do v4 na RFC 9562, por que IDs ordenados por tempo servem bem como chaves de banco de dados, o que é um GUID, e uma ferramenta no navegador para gerar IDs v4 e v7 e decodificar o timestamp de um v7.

Os dois são identificadores de 128 bits escritos com 36 caracteres. Um UUID v4 tem 122 bits aleatórios, então novos valores caem em qualquer lugar de um índice ordenado. Um UUID v7 começa com um timestamp Unix de 48 bits em milissegundos seguido de bits aleatórios, então os valores ficam ordenados mais ou menos pela hora de criação. A RFC 9562 recomenda o v7 no lugar dos antigos v1 e v6, baseados em tempo.

v4 e v7 comparados

Escolher uma versão de UUID é principalmente uma questão de banco de dados. Chaves v4 aleatórias espalham as inserções pelo índice, enquanto chaves v7 chegam em ordem, do mesmo jeito que um número auto-increment chegaria, sem precisar de um contador central. Gere os dois tipos abaixo e depois cole qualquer UUID para ver a versão e, no caso do v7, o momento em que foi criado.

Perguntas frequentes

Qual a diferença entre GUID e UUID?

Nenhuma que importe na prática. A RFC 9562 define os UUIDs e observa que eles também são conhecidos como GUIDs, Globally Unique Identifiers, o nome usado pelas ferramentas da Microsoft. Um GUID gerado pelo .NET ou pelo SQL Server é um UUID no mesmo formato de 36 caracteres.

O UUID v7 é um padrão oficial?

Sim. A RFC 9562, publicada em 2024, define as versões 6, 7 e 8 junto com as antigas e torna obsoleta a RFC 4122, o documento que descrevia os UUIDs antes.

O UUID v7 é único o suficiente?

Cada milissegundo tem 74 bits aleatórios para distribuir, o que basta para quase qualquer sistema. Uma colisão exigiria uma quantidade enorme de IDs criados exatamente no mesmo milissegundo.

Consigo recuperar a hora de criação de um UUID v7?

Sim. Os primeiros 12 dígitos hex são o tempo Unix em milissegundos. Cole um no decodificador acima para vê-lo como data, ou converta esses dígitos de número hexadecimal você mesmo.

Devo trocar chaves v4 existentes por v7?

Normalmente não. Os dois são UUIDs válidos e podem conviver na mesma coluna, então linhas novas podem usar v7 enquanto as antigas mantêm os valores v4. Reescrever chaves primárias significa reescrever cada chave estrangeira que aponta para elas.

Por que a ordem importa para bancos de dados

Lendo o formato

As oito versões de UUID

Versões de UUID na RFC 9562

Código para copiar

UUID v4 no navegador ou no Node

Nativo nos navegadores atuais em páginas seguras e no Node 19 e posteriores pelo objeto global crypto. Retorna uma string de 36 caracteres.

UUID v7 sem biblioteca

Escreve a hora atual nos primeiros seis bytes e depois define os bits de versão e de variante. O resto continua aleatório.

Ler a hora de um UUID v7

Os primeiros 12 dígitos hex são milissegundos desde 1970, então convertê-los dá um Date.

Gerar e decodificar

Gerar v4

Gerar v7

Gerado

Clique em um botão para criar um UUID. Ele é criado no seu navegador e nunca é enviado a lugar nenhum.

Cole um UUID para decodificar

Versão: {v}

RFC 9562 (a padrão)

Não é a variante da RFC 9562

Criado em: {v} (UTC)

Esta versão não carrega um timestamp Unix.

Isso não é um UUID. O esperado são 32 dígitos hex em grupos de 8-4-4-4-12.

Este é o Nil UUID: todos os 128 bits são zero.

Este é o Max UUID: todos os 128 bits são um.

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site