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