UUID nedir?
UUID (Evrensel Benzersiz Tanımlayıcı) uzay ve zaman genelinde benzersiz olacak şekilde tasarlanmış standartlaştırılmış bir tanımlayıcı formatıdır. UUID'ler genellikle 32 onaltılık rakam olarak temsil edilen 128-bit değerlerdir ve tirelerle ayrılmış beş grupta gösterilir: 123e4567-e89b-12d3-a456-426614174000
.
UUID'ler RFC 9562 standardı ile tanımlanmıştır (önceki RFC 4122'nin yerini alır) ve merkezi kayıt veya koordinasyon gerektirmeden bilgi tanımlamak için bilgisayar platformlarında kullanılır.
UUID Formatı
Tüm UUID'ler 36 karakterden (32 onaltılık rakam ve 4 tire) oluşan ortak bir formata sahiptir ve şu desenle düzenlenmiştir:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Nerede:
x
herhangi bir onaltılık rakamdır (0-9, a-f)M
UUID sürümünü belirtir (1-7)N
UUID varyantını belirtir (genellikle modern UUID'ler için 8, 9, A veya B)
UUID Sürümlerinin Karşılaştırması
Version | Name | Oluşturma Yöntemi | Time-ordered | Kullanım Alanları |
---|---|---|---|---|
UUID v1 | Timestamp | Mevcut zaman damgası + düğüm ID'si (MAC) | Evet (kısmen) | Kayıt, dağıtık sistemler |
UUID v3 | İsim tabanlı (MD5) | Ad alanı + isim için MD5 hash | No | Aynı girdi için tutarlı ID'ler |
UUID v4 | Random | Rastgele veya yarı rastgele sayılar | No | Genel amaçlı, en yaygın |
UUID v5 | İsim tabanlı (SHA-1) | Ad alanı + isim için SHA-1 hash | No | Daha güçlü hash ile tutarlı ID'ler |
UUID v6 | Yeniden sıralanmış Zaman Damgası | Sıralama için düzenlenmiş zaman damgası | Yes | Veritabanı anahtarları, zamana göre sıralanabilir kayıtlar |
UUID v7 | Unix Epoch Zaman Damgası | Unix zaman damgası + rastgele veri | Yes | Modern sıralanabilir tanımlayıcılar |
Nil UUID | Sıfır UUID | Tüm sıfırlar | N/A | Özel değer, başlatılmamış işaretçi |
UUID'lerin Avantajları
- Koordinasyon Gerekmiyor: Merkezi koordinasyon olmadan ID oluşturun
- Küresel Benzersizlik: Çarpışma olasılığı son derece düşük
- Sabit Uzunluk: Tutarlı 36 karakterlik dize gösterimi
- Cross-Platform: Neredeyse tüm programlama dillerinde desteklenir
- Versatile: Farklı kullanım durumları için farklı sürümler
Standart Olmayan UUID Alternatifleri
ID Türü | Description | Advantages | Disadvantages |
---|---|---|---|
GUID | Microsoft'un UUID uygulaması | UUID ile fonksiyonel olarak eşdeğer | Eski sistemlerde bazı uygulama farklılıkları |
ULID | Evrensel Benzersiz Sözlük Sıralanabilir Tanımlayıcı | Sözlük sıralanabilir, zaman damgası önce, büyük/küçük harf duyarsız | Daha yeni, daha az yaygın benimsenme |
Snowflake ID | Twitter'ın dağıtık ID sistemi | Zamana göre sıralanabilir, kompakt (64-bit) | Merkezi koordinasyon gerektirir |
CUID/CUID2 | Çarpışmaya dayanıklı ID'ler | Kısa, istemci tarafı oluşturma için uygun | Resmi bir standart değil |
Nano ID | Küçük, güvenli, URL dostu benzersiz dize ID oluşturucu | UUID'den daha küçük, yapılandırılabilir alfabe | Standartlaştırılmamış |
Kısa UUID | Standart UUID'lerin daha kısa kodlaması | Daha kompakt gösterim | Standart UUID'ye dönüştürme gerektirir |
Nil UUID | Tüm bitleri sıfır olan UUID | Özel anlamsal anlam | Benzersiz değil (özel değer olarak kullanılır) |
Minecraft UUID | Tireli veya tiresiz UUID'ler | Standart UUID'lerle uyumlu | Sadece biçimlendirme farkları |
Pratik Uygulamalar
- Veritabanı Birincil Anahtarları: Özellikle dağıtık veya çoğaltılmış veritabanlarında
- Dağıtık Sistemler: Birden çok sistemde varlıkları tanımlama
- Web Uygulamaları: Oturum tanımlayıcıları, anonim kullanıcı takibi
- İçerik Yönetimi: Belge ve medya tanımlayıcıları
- APIs: İzleme ve hata ayıklama için istek ve işlem tanımlayıcıları
- Nesnelerin İnterneti: Merkezi kayıt olmadan cihaz tanımlama
- Veri Senkronizasyonu: Birden çok veri deposunda kayıtları tanımlama
- Yazılım Lisanslama: Benzersiz ürün veya lisans anahtarları