てもとツール
ガイド

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生成ツールで作って確かめてみてください。

あわせて読みたい

同じテーマ・関連ツールの記事です。