Ano ang mga UUID?
UUID (Universally Unique Identifier) ay isang standardized na format ng identifier na idinisenyo upang maging globally unique sa espasyo at oras. Ang mga UUID ay 128-bit na mga halaga na karaniwang ipinapakita bilang 32 hexadecimal na digit, na ipinapakita sa limang grupo na pinaghiwalay ng mga hyphen: 123e4567-e89b-12d3-a456-426614174000
.
Ang mga UUID ay tinukoy ng RFC 9562 standard (na pumapalit sa naunang RFC 4122) at ginagamit sa iba't ibang computing platform upang tukuyin ang impormasyon nang hindi nangangailangan ng sentralisadong rehistrasyon o koordinasyon.
Format ng UUID
Lahat ng UUID ay may karaniwang format na binubuo ng 36 na karakter (32 hexadecimal na digit plus 4 na hyphen) na inayos sa pattern na:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Kung saan:
x
ay anumang hexadecimal na digit (0-9, a-f)M
nagsasaad ng bersyon ng UUID (1-7)N
nagsasaad ng variant ng UUID (karaniwang 8, 9, A, o B para sa modernong UUID)
Paghahambing ng mga Bersyon ng UUID
Version | Name | Paraan ng Pagbuo | Time-ordered | Mga Gamit |
---|---|---|---|---|
UUID v1 | Timestamp | Kasalukuyang timestamp + node ID (MAC) | Oo (bahagyang) | Pag-log, mga distributed system |
UUID v3 | Name-based (MD5) | MD5 hash ng namespace + pangalan | No | Pare-parehong mga ID para sa parehong input |
UUID v4 | Random | Random o pseudo-random na mga numero | No | Pangkalahatang gamit, pinakakaraniwan |
UUID v5 | Name-based (SHA-1) | SHA-1 hash ng namespace + pangalan | No | Pare-parehong mga ID na may mas malakas na hash |
UUID v6 | Reordered Timestamp | Timestamp (inaayos para sa pag-sort) | Yes | Mga susi ng database, oras-na maayos na mga rekord |
UUID v7 | Unix Epoch Timestamp | Unix timestamp + random na data | Yes | Modernong mga maayos na identifier |
Nil UUID | Zero UUID | Lahat ay zero | N/A | Espesyal na halaga, marker na hindi pa na-initialize |
Mga Bentahe ng UUID
- Hindi Kailangan ng Koordinasyon: Gumawa ng mga ID nang walang sentralisadong koordinasyon
- Global na Pagkaka-isa: Napakababang posibilidad ng banggaan
- Fixed Length: Pare-parehong 36 na karakter na representasyon ng string
- Cross-Platform: Sinusuportahan sa halos lahat ng programming language
- Versatile: Iba't ibang bersyon para sa iba't ibang gamit
Hindi-Pangkaraniwang Alternatibo ng UUID
Uri ng ID | Description | Advantages | Disadvantages |
---|---|---|---|
GUID | Implementasyon ng Microsoft ng UUID | Functionally katumbas ng UUID | Ilang pagkakaiba sa implementasyon sa mga lumang sistema |
ULID | Universally Unique Lexicographically Sortable Identifier | Lexicographically sortable, timestamp muna, case-insensitive | Mas bago, hindi gaanong malawak ang paggamit |
Snowflake ID | Distributed ID system ng Twitter | Oras-na maayos, compact (64-bit) | Nangangailangan ng sentralisadong koordinasyon |
CUID/CUID2 | Mga ID na resistant sa banggaan | Maikli, angkop para sa client-side na paggawa | Hindi opisyal na standard |
Nano ID | Maliit, secure, URL-friendly na unique string ID generator | Mas maliit kaysa UUID, configurable na alpabeto | Hindi standardized |
Short UUID | Mas maikling encoding ng standard UUIDs | Mas compact na representasyon | Nangangailangan ng conversion papunta/pabalik sa standard UUID |
Nil UUID | UUID na may lahat ng bits na naka-zero | Espesyal na semantikong kahulugan | Hindi unique (ginagamit bilang espesyal na halaga) |
Minecraft UUID | Mga UUID na may o walang hyphen | Compatible sa standard UUIDs | Pagkakaiba lamang sa format |
Mga Praktikal na Aplikasyon
- Mga Pangunahing Susi ng Database: Lalo na sa mga distributed o replicated na database
- Distributed Systems: Tukuyin ang mga entidad sa maraming sistema
- Mga Web Application: Mga session identifier, pagsubaybay sa mga anonymous na user
- Content Management: Mga identifier ng dokumento at media
- APIs: Mga identifier ng request at transaksyon para sa pagsubaybay at debugging
- Internet of Things: Pagkilala sa device nang walang sentralisadong rehistrasyon
- Data Synchronization: Pagtukoy ng mga rekord sa maraming data store
- Software Licensing: Unique na produkto o mga susi ng lisensya