sql >> データベース >  >> RDS >> Sqlserver

ID列にuniqueidentifier(GUID)またはbigintを使用する方がよいですか?

    それはあなたがしていることに依存します:

    • 速度が主な関心事である場合は、昔ながらの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'と入力するだけでは不十分です。 他の人のアカウントの結果が得られることを期待してください。


    1. SQLデータ型を理解する–SQLデータ型について知っておくべきことすべて

    2. MySQLデータベースのタイムゾーンをGMTに設定します

    3. パッケージ内で現在実行中のプロシージャ名

    4. MariaDBでのCONVERT_TZ()のしくみ