Das hängt davon ab, was Sie tun:
- Wenn Geschwindigkeit das Hauptanliegen ist, dann ein einfaches altes
int
ist wahrscheinlich groß genug. - Wenn Sie wirklich mehr als 2 Milliarden (mit einem B;) ) Datensätze haben werden, dann verwenden Sie
bigint
oder eine sequentielle Anleitung. - Wenn Sie in der Lage sein müssen, mit entfernt erstellten Datensätzen einfach zu synchronisieren, dann
Guid
ist wirklich toll.
Aktualisieren
Einige zusätzliche (weniger offensichtliche) Anmerkungen zu Guids:
- Sie können Indizes stark belasten, und das beeinträchtigt die Datenbankleistung erheblich
- Sie können sequentielle Guids verwenden, um einen Teil der Indizierungsleistung zurückzugewinnen, aber etwas von der in Punkt 2 verwendeten Zufälligkeit aufgeben.
- Guids können schwer von Hand zu debuggen sein (
where id='xxx-xxx-xxxxx'
), aber Sie erhalten einiges davon auch über sequentielle Guids zurück (where id='xxx-xxx' + '123'
). ). - Aus dem gleichen Grund können Guids ID-basierte Sicherheitsangriffe erschweren, aber nicht unmöglich machen. (Sie können nicht einfach
'http://example.com?userid=xxxx'
eingeben und erwarten, ein Ergebnis für das Konto einer anderen Person zu erhalten).