
「這個 ID,絕對不會跟別人重複嗎?」
在系統中處理資料時,不可避免地會面臨「ID(識別碼)」的設計問題。
「使用者 ID,用簡單的連號可以嗎?」、「當資料量增加時,萬一跟另一台伺服器的資料重複了該怎麼辦……」
能消除這類不安,且在任何分散式環境中無需中央管理即可即時產出「世界上唯一一個 ID」的 MAGIC,就是 UUID (Universally Unique Identifier)。
UUID:注入 128 位元中的「奇蹟」
UUID 擁有 128 位元這一龐大的資訊量。
其組合的數量多到驚人,據說即使全人類在一生當中,每秒鐘持續產生 10 億個 UUID,發生重複的機率也趨近於零。
正因為有這份壓倒性的「安心感」,我們才能放心地在資料庫或微服務 (Microservices) 之間共享 ID。
該選哪一個?UUID 版本挑選的關鍵
雖然 UUID 有好幾種版本,但現代開發者主要只需記住這三種:
- Version 4:完全隨機
- 特性:完全隨機,無法預測。
- 適用場景:Session ID、臨時檔案名稱等「總之不希望重複且不希望被猜到」的用途。
- Version 7:結合時間戳記的可排序 UUID
- 特性:字串開頭包含時間戳記。
- 適用場景:資料庫主鍵 (Primary Key)。由於它是按產出順序排列的,因此能在不犧牲資料庫搜尋效率(索引性能)的前提下,享受 UUID 的優點。這是 2024 年才標準化,目前最受矚目的選擇。
- Version 1:機器的證跡(MAC 位址)
- 特性:能看出是由哪台機器、在什麼時間點產出的。
- 適用場景:具備歷史背景的系統,或是需要追蹤特定設備的情況。
若感到迷惑,何不先動手試試?
「UUID 長什麼樣子?」、「我想一次產出 100 個 v4 UUID」。
這種時候,請試試本站的 UUID 生成工具。
每點選一次按鈕,瞬間就會誕生一組全新的 UUID。凝視著那組無機質卻又可靠的字串,或許會讓廣大的分散式系統世界,感覺變得親近了一些。
結語
UUID 是將各自獨立運行的系統連結在一起的「紐帶」。
配合用途選擇最合適的版本,從對 ID 重複的擔憂中解脫吧。將唯一性的保證交給工具,而您可以將精力投入到更有價值的邏輯實作中。