Isso depende do que você está fazendo:
- Se a velocidade for a principal preocupação, então um simples
int
provavelmente é grande o suficiente. - Se você realmente tiver mais de 2 bilhões (com um B;) ) de registros, use
bigint
ou um guia sequencial. - Se você precisar sincronizar facilmente com registros criados remotamente, então
Guid
é realmente ótimo.
Atualizar
Algumas notas adicionais (menos óbvias) sobre os Guids:
- Eles podem ser difíceis para os índices, e isso prejudica o desempenho do banco de dados
- Você pode usar guias sequenciais para recuperar um pouco do desempenho da indexação, mas abandone um pouco da aleatoriedade usada no ponto dois.
- Os guias podem ser difíceis de depurar manualmente (
where id='xxx-xxx-xxxxx'
), mas você também obtém parte disso por meio de guias sequenciais (where id='xxx-xxx' + '123'
). - Pelo mesmo motivo, os Guids podem tornar os ataques de segurança baseados em ID mais difíceis, mas não impossíveis. (Você não pode simplesmente digitar
'http://example.com?userid=xxxx'
e esperar obter um resultado para a conta de outra pessoa).