UUIDとは?重複しない仕組みとv4・v7の違い
UUIDとは何か、なぜ別々の場所で作ってもほぼ重複しないのかを、専門知識がなくても分かるように解説します。よく使われるv4とv7の違いや、連番との使い分け、実際の桁数のイメージまで整理しました。
公開 読了目安 約3分
この記事の要点
- UUIDは世界中でほぼ重複しない前提の識別子
- 重複しないのは組み合わせが桁違いに多いから
- v4はランダム、v7は時刻順に並ぶ点が違う
- 連番より当てにくく分散処理にも向く
目次
「UUID」という言葉を、アプリの設定画面やファイル名で見かけたことはないでしょうか。UUIDとは、モノやデータを一つずつ区別するための、重複しない番号のことです。
この記事では、UUIDが何なのか、なぜ別々の場所で作ってもぶつからないのかを、順にほどいていきます。値を実際に作って確かめたいときは、UUID生成ツールを使ってみてください。
UUIDとは何か
UUIDは Universally Unique Identifier の略で、「世界共通で唯一の識別子」という意味です。日本語では汎用一意識別子と呼ばれます。
見た目は 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d のような、英数字とハイフンの並びです。この36文字が、一つの番号を表しています。
大事なのは「誰がどこで作っても、同じ値になりにくい」という性質です。中央で番号を管理する仕組みが無くても、それぞれが勝手に作って共存できます。
なぜ重複しないのか
「管理せずに作って本当にかぶらないの?」と不安になるかもしれません。答えは、組み合わせの数が桁違いに多いからです。
UUIDは実質122ビットぶんの情報を持ちます。これは10進で約5.3×10³⁶通り、つまり5千3百澗(かん)という途方もない数です。
砂粒から一つを選ぶより、はるかに当たりにくい確率です。現実的な件数を作るぶんには、重複はまず起きないと考えて差し支えありません。
連番との違い
番号を振る方法としては、1、2、3…と増やす連番もあります。UUIDと連番は、向いている場面が違います。
連番は短くて読みやすい反面、値を見れば「今どのくらいの件数か」が推測できてしまいます。次の番号も簡単に当てられます。
UUIDはその心配がありません。値がランダムなので、件数も次の番号も外からは分かりません。複数のサーバーで同時に番号を作っても、ぶつからずに済みます。
v4とv7の違い
よく使われるのは v4 と v7 の2種類です。違いは、並び順に意味があるかどうかです。
v4は中身がすべてランダムで、順序はありません。一番よく使われる、素直なUUIDです。
v7は先頭に作成時刻が入り、生成した順に自然と並びます。データベースに大量に保存するとき、並び順がそろっていると検索が速くなる場面があります。
| 種類 | 中身 | 並び順 | 向いている用途 |
|---|---|---|---|
| v4 | ランダム | なし | 一般的な識別子全般 |
| v7 | 時刻+ランダム | 作成順 | 大量保存・時系列 |
迷ったら、まずv4を選べば十分な場面がほとんどです。
どこで使われているのか
UUIDは、表に出ないところで幅広く使われています。仕組みを知ると、身近なサービスの裏側が少し見えてきます。
たとえばクラウドに写真をあげると、元の名前とは別にUUIDのファイル名が付くことがあります。同じ名前の写真が上書きされるのを防ぐためです。
会員登録の内部IDや、アプリが端末に振る目印にも使われます。人には見えなくても、データを取り違えないための下支えになっています。
まとめ
UUIDは、管理役を置かずに「かぶらない番号」を作れる識別子です。組み合わせが桁違いに多いため、別々の場所で作ってもほぼ重複しません。
種類はランダムのv4と、時刻順に並ぶv7が中心です。実際にどんな値になるか見てみたいときは、UUID生成ツールで作って確かめてみてください。
あわせて読みたい
同じテーマ・関連ツールの記事です。