O que é UUID e quando usar identificadores únicos
Entenda o que é um UUID, as diferenças entre as versões (v1, v4, v7), e quando faz sentido usá-lo como chave em vez de IDs sequenciais.
UUID (Universally Unique Identifier), também chamado de GUID, é um identificador de 128 bits projetado para ser único no espaço e no tempo sem precisar de uma autoridade central que o coordene. Na prática, é aquela sequência de 32 caracteres hexadecimais separada por hífens (8-4-4-4-12) que você vê em chaves de banco de dados, URLs e APIs modernas.
Por que usar UUID em vez de ID sequencial
IDs auto-incrementais (1, 2, 3...) são simples, mas têm desvantagens: revelam volume de dados (um pedido #50000 entrega quantos pedidos a empresa tem), dificultam a fusão de bases de sistemas distribuídos e criam pontos de coordenação. O UUID resolve isso permitindo que qualquer nó — cliente, servidor, dispositivo offline — gere uma chave única sem consultar o banco, com chance desprezível de colisão.
As versões mais usadas
- v4 — totalmente aleatório. É o mais comum e o que você quer na maioria dos casos.
- v1 — baseado em timestamp + MAC address. Único, mas vaza informações de hardware e tempo.
- v7 — versão moderna baseada em timestamp ordenável. Combina unicidade com ordenação cronológica, o que melhora a performance de índices em banco.
Para a maior parte das aplicações, o v4 é a escolha segura. Se a ordenação por criação importa para o desempenho do banco (como em índices B-tree), vale conhecer o v7.
A questão da performance em banco de dados
Um ponto que pega equipes: UUID v4, por ser aleatório, espalha as inserções pelo índice, podendo fragmentá-lo e degradar a performance em tabelas muito grandes. É por isso que o v7 (ordenável por tempo) ganhou popularidade — ele mantém as vantagens do UUID sem o custo de fragmentação. Em escala menor, a diferença é irrelevante.
UUID em ambientes de teste
Ao escrever testes, fixtures e seeds, é comum precisar de vários UUIDs válidos. Gerar de antemão um conjunto de identificadores no formato correto evita depender de bibliotecas só para popular dados de exemplo, e garante que os testes de máscara/validação recebam strings no formato canônico.
Perguntas frequentes
Dois UUID podem ser iguais por acaso?
Em teoria sim, na prática não. O espaço de um UUID v4 é de 2^122 valores. A probabilidade de colisão é tão baixa que, para fins práticos, é considerada nula.
UUID é seguro para usar como token secreto?
Não necessariamente. Um UUID v4 é aleatório, mas nem toda implementação usa fonte criptograficamente segura. Para tokens de sessão ou senhas, use geradores específicos de segredos criptográficos.