それはあなたがしていることに依存します:
- 速度が主な関心事である場合は、昔ながらの
int
おそらく十分な大きさです。 - 実際に20億を超える(Bを含む;))レコードがある場合は、
bigint
を使用します。 または順次GUID。 - リモートで作成されたレコードと簡単に同期できるようにする必要がある場合は、
Guid
本当に素晴らしいです。
更新
Guidsに関するいくつかの追加の(あまり目立たない)メモ:
- インデックスに苦労する可能性があり、それがデータベースのパフォーマンスの中核になります
- シーケンシャルGUIDを使用して、インデックス作成のパフォーマンスの一部を取り戻すことができますが、ポイント2で使用されたランダム性の一部を放棄します。
- GUIは手動でデバッグするのが難しい場合があります(
where id='xxx-xxx-xxxxx'
)、ただし、シーケンシャルGUIDを介してその一部を取得します(where id='xxx-xxx' + '123'
)。 - 同じ理由で、GUIDはIDベースのセキュリティ攻撃をより困難にする可能性がありますが、不可能ではありません。 (
'http://example.com?userid=xxxx'
と入力するだけでは不十分です。 他の人のアカウントの結果が得られることを期待してください。