Eso depende de lo que estés haciendo:
- Si la velocidad es la principal preocupación, entonces un simple
int
probablemente sea lo suficientemente grande. - Si realmente va a tener más de 2 mil millones (con B;) ) registros, entonces use
bigint
o un GUID secuencial. - Si necesita poder sincronizar fácilmente con registros creados de forma remota, entonces
Guid
es realmente genial.
Actualizar
Algunas notas adicionales (menos obvias) sobre Guids:
- Pueden ser duros con los índices, y eso reduce el rendimiento de la base de datos
- Puede usar guías secuenciales para recuperar parte del rendimiento de la indexación, pero renuncie a parte de la aleatoriedad utilizada en el punto dos.
- Los GUID pueden ser difíciles de depurar a mano (
where id='xxx-xxx-xxxxx'
), pero también obtiene algo de eso a través de guids secuenciales (where id='xxx-xxx' + '123'
). - Por la misma razón, los Guids pueden hacer que los ataques de seguridad basados en ID sean más difíciles, pero no imposibles. (No puede simplemente escribir
'http://example.com?userid=xxxx'
y espera obtener un resultado para la cuenta de otra persona).