O Que é UUID?
UUIDs são identificadores únicos de 128 bits que podem ser gerados em qualquer lugar sem coordenação. Este guia explica o que são, como funcionam e quando usá-los.
Unicidade Sem Coordenação
A característica notável dos UUIDs é que eles podem ser gerados independentemente em qualquer computador e ainda assim ser efetivamente garantidos únicos. Não há servidor central alocando IDs. Não há verificação de banco de dados requerida. Você simplesmente gera um UUID e pode ter confiança de que nenhum outro computador no mundo gerará o mesmo. Esta unicidade vem do tamanho massivo do espaço UUID. Com 2^128 valores possíveis, o número de UUIDs possíveis é tão grande que aleatoriedade produz unicidade prática. Para perspectiva: se você gerasse um bilhão de UUIDs a cada segundo, levaria trilhões de anos para ter até uma pequena chance de colisão. Isto resolve problemas fundamentais em sistemas distribuídos. Bancos de dados tradicionais usam IDs auto-incrementais onde o banco de dados garante unicidade. Mas em sistemas distribuídos com múltiplos bancos de dados, auto-incremento cria conflitos. UUIDs permitem que cada sistema gere IDs independentemente sem conflitos quando os dados mesclam.
Formato UUID
UUIDs são exibidos como 32 dígitos hexadecimais em cinco grupos: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. Exemplo: 550e8400-e29b-41d4-a716-446655440000. Os grupos contêm 8, 4, 4, 4 e 12 dígitos hex (totalizando 36 caracteres com hífens). O dígito M indica a versão UUID. O dígito N indica a variante (sempre 8, 9, A ou B em UUIDs RFC 4122). Versão 4 UUIDs (aleatórios) são mais comuns. Têm '4' na posição M e bits aleatórios em outro lugar. Exemplo: 123e4567-e89b-42d3-a456-426614174000 (note o '4' no terceiro grupo). Internamente, UUIDs são 128 bits (16 bytes). Podem ser armazenados como binário para eficiência ou como strings para legibilidade. Armazenamento binário economiza espaço mas strings são mais fáceis de depurar.
Quando Usar UUIDs
Use UUIDs quando: Sistemas distribuídos precisam gerar IDs independentemente. Mesclando dados de múltiplas fontes. IDs precisam ser não-adivinháveos para segurança. Geração do lado do cliente necessária (antes da inserção no banco de dados). Rastreando entidades através de sistemas. Evite UUIDs quando: Sistema único centralizado com banco de dados tradicional. Desempenho máximo de banco de dados crítico (UUIDs são maiores). Ordenação natural por ID importante. Simplicidade mais importante que distribuição. UUIDs são ferramenta certa para arquiteturas modernas distribuídas. Para aplicações tradicionais centralizadas, inteiros auto-incrementais podem ser mais simples.
Testar a Ferramenta
Gerador de UUID