UUID
ユニバーサル一意識別子を返します
(別のDBにインポートした場合も一意になることを願っています)。
MySQLドキュメントから引用するには(私の強調):
一方、単純なINT
プライマリIDキー(例: AUTO_INCREMENT )は一意の整数を返します 特定のDBおよびDBテーブル用ですが、これは普遍的に一意ではありません (したがって、別のDBにインポートされた場合、主キーの競合が発生する可能性があります)。
パフォーマンスに関しては、auto-increment
を使用しても目立った違いはないはずです。 UUID
を介して 。ほとんどの投稿(このサイトの作者によるものを含む)は、そのように述べています。もちろんUUID
もう少し時間(およびスペース)がかかる場合がありますが、これはほとんどの(すべてではないにしても)ケースのパフォーマンスのボトルネックではありません。 Primary Key
として列を持つ 両方の選択をパフォーマンスと同等にする必要があります。以下の参照を参照してください:
- To
UUID
UUID
にするかどうか ? - 神話、
GUID
vsAutoincrement
- パフォーマンス:
UUID
vsAutoincrement
Cakephp-mysqlで -
UUID
MySQLのパフォーマンス? - 主キー:
ID
s対GUID
s(コーディングホラー)
(UUID
vsAutoincrement
神話、GUID
を基にしたパフォーマンス結果 vsAutoincrement
)
UUID
長所/短所 (主キー:ID
から採用 s対GUID
s
)
注
上記の参照を注意深く読み、UUID
を使用するかどうかを決定します 私のユースケースに応じて。そうは言っても、多くの場合、UUID
sは確かに望ましいでしょう。たとえば、UUID
を生成できます ■データベースをまったく使用/アクセスせずに、またはUUID
を使用することもありません 事前に計算されている、および/または別の場所に保存されている。さらに、ID
を気にすることなく、データベーススキーマやクラスタリングスキームを簡単に一般化/更新できます。 sが壊れて衝突を引き起こす。
衝突の可能性に関しては、たとえばv4 UUIDS(ランダム)を使用すると、重複を見つける確率103兆バージョン以内-4UUIDは10億分の1です。