Cela dépend de ce que vous faites :
- Si la vitesse est la principale préoccupation, alors un simple vieux
int
est probablement assez grand. - Si vous avez vraiment plus de 2 milliards (avec un B;) ) d'enregistrements, alors utilisez
bigint
ou un guide séquentiel. - Si vous avez besoin de pouvoir synchroniser facilement avec des enregistrements créés à distance, alors
Guid
est vraiment génial.
Mettre à jour
Quelques notes supplémentaires (moins évidentes) sur les Guids :
- Ils peuvent être difficiles pour les index, et cela va au cœur des performances de la base de données
- Vous pouvez utiliser des guides séquentiels pour récupérer une partie des performances d'indexation, mais abandonner une partie du caractère aléatoire utilisé au point 2.
- Les GUID peuvent être difficiles à déboguer manuellement (
where id='xxx-xxx-xxxxx'
), mais vous en récupérez également une partie via des guides séquentiels (where id='xxx-xxx' + '123'
). - Pour la même raison, les Guids peuvent rendre les attaques de sécurité basées sur l'ID plus difficiles, mais pas impossibles. (Vous ne pouvez pas simplement taper
'http://example.com?userid=xxxx'
et s'attendre à obtenir un résultat pour le compte de quelqu'un d'autre).