2016-06-29 5 views
0

私は、テーブルの主キーとしてINT(ランダムに生成された)またはGUIDの使用を検討している状況があります。ランダムに生成されたINTが重複を作成する可能性があることを完全に認識していますが、これを簡単に処理できます。重複の可能性は問題の一部ではないので、これを受け入れる準備ができています。プライマリキーにINT対GUIDを使用すると効率が向上しますか?

重複INTの可能性は非常に低いですが、私は大丈夫です。

INT対GUIDをプライマリキーまたはインデックスとして使用する利点または欠点はありますか? SQL Serverは、範囲検索の場合、どちらか一方をよりうまく処理しますか? SQL ServerにはGUIDとINTの最適化がありますか?

+0

http://stackoverflow.com/a/9728569/1080354 – gotqn

答えて

1

パフォーマンスに懸念がある場合は、intはデータ型のサイズのためにGUID実装を打ち消します。 uniqueidentifierタイプを使用しているか、char(32)を使用していますか?いずれかがint実装よりも遅くなります。

ただし、GUIDは、構築するアプリケーションの種類に応じて適切な選択肢です。ステートマシンに触れる前に "ユニーク"な識別子を生成できるようにしたいものを構築する場合は、GUIDを使用します。

あなたがデータベースの人なら、あなたはintに向かって傾いているかもしれません。

アプリケーション開発者は、自分自身がGUIDに傾いている可能性があります。

ただの簡単な質問ですが、sequenceを使用してみませんか?

それだけです。

これが役に立ちます。

+0

ユニークIDENTIFIERタイプは私が考えていたものです。限り、それとINTの間のストレージとしてどのようなサイズの違いはありますか? –

+0

uniqueidentifierは16バイトで、intは4です。https://msdn.microsoft.com/en-us/library/ms187752.aspx – Yobik

関連する問題