To zależy od tego, co robisz:
- Jeśli szybkość jest najważniejsza, to zwykły stary
int
jest prawdopodobnie wystarczająco duży. - Jeśli naprawdę będziesz miał więcej niż 2 miliardy (z literą B;) ) rekordów, użyj
bigint
lub sekwencyjny przewodnik. - Jeśli chcesz mieć możliwość łatwej synchronizacji z rekordami utworzonymi zdalnie, wtedy
Guid
jest naprawdę świetny.
Aktualizacja
Niektóre dodatkowe (mniej oczywiste) uwagi dotyczące przewodników:
- Mogą być trudne dla indeksów, a to ogranicza wydajność bazy danych
- Możesz użyć sekwencyjnych guidów, aby odzyskać część wydajności indeksowania, ale zrezygnuj z losowości użytej w punkcie drugim.
- Ręczne debugowanie guidów może być trudne (
where id='xxx-xxx-xxxxx'
), ale część z nich można odzyskać również za pomocą sekwencyjnych guidów (where id='xxx-xxx' + '123'
). - Z tego samego powodu Guidy mogą utrudnić ataki na zabezpieczenia oparte na identyfikatorach, ale nie uniemożliwić ich. (Nie możesz po prostu wpisać
'http://example.com?userid=xxxx'
i spodziewać się wyniku dla cudzego konta).