AG UUID

UUID vs chave primária de inteiro auto-incremento

Compara o uso de UUID e de inteiros auto-incrementais como chave primária de banco de dados.

Inteiro auto-incremento

É curto, rápido e tem boa localidade de índice. Por outro lado, é difícil mesclar vários bancos de dados, a numeração sequencial expõe o total de registros e fica complicado para a aplicação gerar o ID com antecedência ou de forma distribuída.

UUID

Em ambientes distribuídos, cada nó pode gerar valores sem colisão e o valor é difícil de prever. Em compensação, tem 128 bits (maior que um inteiro) e, sendo v4 aleatório, é inserido de forma dispersa no índice, o que pode prejudicar o desempenho de escrita.

Critério de escolha

Para um sistema interno com um único banco de dados, o inteiro é mais simples e eficiente. Se você precisa de um sistema distribuído, de uma API pública ou de mesclar múltiplas fontes, o UUID é vantajoso, sobretudo o v7 ordenado por tempo. Também é comum a solução intermediária de manter uma chave primária interna em inteiro e um UUID para exposição externa.