Det beror på vad du gör:
- Om hastigheten är det primära problemet är en vanlig
int
är förmodligen tillräckligt stor. - Om du verkligen kommer att ha mer än 2 miljarder (med ett B;) ) poster, använd sedan
bigint
eller en sekventiell guide. - Om du enkelt behöver kunna synkronisera med poster som skapats på distans, använd
Guid
är riktigt bra.
Uppdatera
Några ytterligare (mindre uppenbara) anteckningar om guider:
- De kan vara svåra för index, och det skär till kärnan av databasprestanda
- Du kan använda sekventiella guider för att få tillbaka en del av indexeringsprestandan, men ge upp en del av slumpmässigheten som användes i punkt två.
- Guider kan vara svåra att felsöka för hand (
where id='xxx-xxx-xxxxx'
), men du får tillbaka en del av det också via sekventiella guider (where id='xxx-xxx' + '123'
). - Av samma anledning kan Guids göra ID-baserade säkerhetsattacker svårare – men inte omöjliga. (Du kan inte bara skriva
'http://example.com?userid=xxxx'
och förvänta dig att få ett resultat för någon annans konto).