Pular para o conteúdo principal
DevTools by Decussi
  • Ferramentas
  • Dados
  • Segurança
  • Rede
  • Texto
  • Data
  • Web
  • Dev
  • SEO
  • Brasil
Ferramentas
DevTools

Ferramentas para desenvolvedores, em português. Sem cadastro e sem instalação.

Criado e mantido por Decussi

Ferramentas

  • Todas as ferramentas
  • Dados
  • Segurança
  • Rede
  • Texto
  • Data
  • Web
  • Dev
  • SEO
  • Brasil

Referência

  • Consulta rápida
  • Guias
  • Códigos HTTP
  • Cron
  • Checagens de SEO

Desenvolvedores

  • API e devs
  • llms.txt
  • ai.txt
  • Sitemap

Newsletter

Receba novidades e novas ferramentas no seu email.

Sugira uma ferramenta

Tem uma ideia? Envie sua sugestão.

  1. Início
  2. /Guias
  3. /Comparações

UUID v4 vs v7: qual usar como chave primária

As duas versões geram identificadores únicos. A diferença está na ordem — e é ela que decide o desempenho do seu índice.

Comparação direta

UUID v4UUID v7
Composição122 bits aleatórios48 bits de timestamp + aleatoriedade
Ordenável por criaçãoNãoSim
Revela o momento da criaçãoNãoSim, em milissegundos
Desempenho como chave primáriaFragmenta o índiceInsere sempre no fim do índice
SuporteUniversalPadronizado em 2024, adoção crescente

Por que o v4 pesa no banco

Índices de banco costumam ser árvores B, otimizadas para inserção ordenada. Uma chave sequencial sempre entra na última página, que já está em memória.

Um UUID v4 cai em qualquer ponto do índice. Cada inserção pode tocar uma página diferente, o que aumenta a leitura de disco, provoca divisão de páginas e faz o índice crescer mais do que precisaria. Em tabelas pequenas isso é irrelevante; em milhões de linhas, aparece.

O UUID v7 resolve começando por um timestamp: identificadores gerados em sequência ficam próximos, e a inserção volta a ser no fim do índice.

Como escolher

  • Chave primária de tabela que vai crescer muito: v7
  • Identificador público em que o momento da criação não deve vazar: v4
  • Token, nome de arquivo, identificador de correlação: v4 resolve bem
  • Registros criados offline que precisam ser ordenados depois: v7
  • Ambiente que ainda não suporta v7: v4, ou ULID, que tem a mesma ideia com outra codificação

Gerando nas principais linguagens

javascript
// v4 nativo, no navegador e no Node moderno
const id = crypto.randomUUID();

// v7 exige biblioteca, por enquanto
import { uuidv7 } from "uuidv7";
const ordenavel = uuidv7();
sql
-- PostgreSQL 18 tem uuidv7 nativo
SELECT uuidv7();

-- Em versões anteriores, gen_random_uuid() devolve v4
SELECT gen_random_uuid();

Perguntas frequentes

Dois UUID v4 podem colidir?
Na prática, não. São 122 bits aleatórios: seria preciso gerar bilhões por segundo durante décadas para que a probabilidade deixasse de ser desprezível.
UUID v7 vaza informação?
Sim, o momento da criação em milissegundos. Na maioria dos casos isso é inofensivo ou até útil, mas se a data de criação for sensível, prefira o v4.

Resolva na prática

  • Gerador de UUID
  • Identificador de hash

Guias relacionados

  • MD5 vs SHA-256: qual usar e quando nenhum dos dois serve