2026-06-25

UUID Nedir ve Neden Kullanılır? Benzersiz Kimlik Rehberi

UUID (Universally Unique Identifier) nedir? v1, v4, v7 versiyon farkları, veritabanı performansı ve dağıtık sistem mimarilerinde kullanımı kapsamlı rehberi.

databasesweb-developmentsecuritydevops
  • UUID (Universally Unique Identifier), merkezi bir otoriteye ihtiyaç duymadan 128 bitlik evrensel benzersiz kimlikler üreten standarttır.
  • RFC 4122 ve RFC 9562 standartlarında tanımlanan UUID formatı 36 karakterlik 8-4-4-4-12 yapısından oluşur.
  • UUID v4 tamamen rastgele sayılara dayanırken, yeni UUID v7 zaman öncelikli sıralanabilir yapısıyla B-Tree indeks performansını optimize eder.
  • Dağıtık mikroservis mimarilerinde veri birleştirme, güvenlik ve tahmin edilemezlik sağlamak amacıyla tercih edilmektedir.

Dağıtık Sistemlerde UUID Yapısı ve Standart Tanımı

Modern yazılım mimarilerinde ve ilişkisel veritabanı yönetim sistemlerinde nesneleri, kullanıcı oturumlarını veya veritabanı kayıtlarını benzersiz biçimde tanımlamak kritik bir zorunluluktur. Geleneksel tekil veritabanı yaklaşımlarında kullanılan otomatik artan sayısal birincil anahtarlar (auto-increment integer primary keys), dağıtık sistemler, bulut mimarileri ve mikroservis yapılarında ölçeklenebilirlik engellerine yol açmaktadır. Bu sorunu ortadan kaldırmak amacıyla geliştirilen UUID (Universally Unique Identifier), merkezi bir koordinatör sunucuya danışmadan küresel ölçekte benzersiz kimlikler üretilmesine olanak tanımaktadır.

IETF tarafından yayınlanan RFC 4122 (ve güncellenmiş RFC 9562) standartlarında detaylı biçimde tanımlanan UUID, 128 bit (16 bayt) uzunluğunda bir ikili veridir. Bu veri metinsel olarak heksadesimal (16'lık taban) formatta 32 karakter ve aralarına yerleştirilen 4 tire işareti ile toplam 36 karakterlik dize biçiminde temsil edilmektedir:

123e4567-e89b-12d3-a456-426614174000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Bu yapı içindeki M harfi UUID versiyonunu (1, 4, 7 vb.), N harfi ise kullanılan varyant (variant) standartlarını temsil etmektedir. Sistem mimarlarının ve yazılım geliştiricilerin bu yapısal ayrımı doğru şekilde anlaması, mikroservisler arasında veri tutarlılığını sağlamak ve uyumlu veri modelleri tasarlamak için zorunlu bir gereksinimdir.

Projeleriniz için anında benzersiz kimlik dizileri üretmek istiyorsanız UUID üretici aracı sayfamızı ziyaret ederek farklı sürümlerde toplu UUID'ler oluşturabilirsiniz.

UUID Versiyonları (v1, v4, v5 ve v7) Arasındaki Farklar

UUID standardı kullanım amacına göre farklı algoritmik yapılar sunmaktadır. İhtiyaca doğru versiyonun seçilmesi veritabanı sorgu performansı ve veri gizliliği açısından hayati önem taşır:

UUID v1 (Zaman ve MAC Adresi Tabanlı)

UUID v1, oluşturulduğu anın UTC zaman damgası ile cihazın fiziksel ağ kartının MAC adresini birleştirir. Oluşturulma zamanı kronolojik olarak takip edilebilir ancak cihazın fiziksel ağ adresini sızdırdığı için gizlilik kaygıları ve güvenlik zafiyetleri oluşturabilir.

UUID v4 (Tamamen Rastgele)

Günümüzde en yaygın kullanılan UUID türüdür. 128 bitlik değerin 122 biti tamamen kriptografik olarak rastgele üretilen sayılardan oluşur. İki adet UUID v4 değerinin çakışma (collision) ihtimali matematiksel olarak 1 / 2^122 kadardır. Bu oran trilyonlarca kayıt üretilse dahi pratik kullanımda imkansız bir çakışma riskini ifade etmektedir.

Kriptografik olarak güvenli rastgele sayı üretimi ve algoritmalar hakkında daha detaylı bilgi edinmek için Rastgele sayı üretimi rehberi makalemizi okuyabilirsiniz.

UUID v7 (Zaman Tabanlı Sıralanabilir Yeni Standart)

RFC 9562 ile standardize edilen UUID v7, v4'ün rastgeleliği ile v1'in kronolojik sıralama avantajını mükemmel biçimde birleştirir. İlk 48 biti milisaniye hassasiyetinde Unix zaman damgası içerir, kalan bitler rastgele değerlerle doldurulur. Bu sayede veritabanı indekslerinde B-Tree parçalanması önlenmiş olur ve yüksek performanslı yazma işlemleri gerçekleştirilir.

Otomatik Artan (Auto-Increment) ID vs. UUID Karşılaştırması

Yazılım mimarları ve veritabanı yöneticileri veritabanı tasarımı yaparken otomatik artan tam sayılar (1, 2, 3...) ile UUID arasında karar vermek durumundadır. Her iki yaklaşımın da kendine özgü avantajları bulunmaktadır:

  1. Tahmin Edilemezlik ve Güvenlik: example.com/user/104 URL yapısında bir saldırgan sonraki ID değerlerini tahmin ederek sistemdeki toplam kullanıcı ve sipariş sayısını çıkarabilir veya otomatize veri çekme (scraping) denemeleri yapabilir. UUID kullanımı bu tür URL tahminleme ve nesne sızdırma saldırılarını tamamen engeller.
  2. Dağıtık Üretim (Decentralized Generation): Mikroservisler merkezi veritabanı sunucusuna sorgu atmadan istemci tarafında veya uygulama katmanında kendi kimliğini doğrudan üretebilir. Böylece ağ gecikmeleri ve veritabanı kilitlenmeleri yaşanmaz. Ayrıca offline çalışan mobil uygulamalar veritabanına bağlanmadan nesne kimliği oluşturabilir.
  3. Veritabanı İndeks Boyutu ve Performansı: Otomatik artan 4 baytlık INTEGER veya 8 baytlık BIGINT değerleri bellek ve B-Tree indeks yapısında 16 baytlık UUID'ye göre daha az yer kaplar. Ancak sıralı ekleme sağlayan UUID v7 kullanımı veritabanı indeks performansını korumaktadır.

Veritabanı veri şemaları tasarlarken veri doğrulama kuralları ve veri yapıları için JSON Schema rehberi içeriğimizi detaylıca inceleyebilirsiniz.

Sıkça Sorulan Sorular

İki UUID v4 değerinin çakışma ihtimali nedir?

UUID v4 değerinde 122 bit rastgelelik bulunur. Matematiksel olarak 1 milyar UUID üretseniz bile çakışma olasılığı trilyonda bir seviyesinin çok altındadır ve pratik yazılım uygulamalarında kesinlikle sıfır kabul edilir.

Veritabanlarında UUID v4 kullanmak performansı etkiler mi?

UUID v4 rastgele yapıda olduğu için ilişkisel veritabanlarındaki B-Tree indekslerinde sürekli sayfa bölünmelerine (page splits) ve rastgele disk I/O işlemlerine yol açarak yazma performansını gözle görülür şekilde düşürebilir.

UUID v7 neden geliştirilmiştir?

UUID v7, zaman damgası bilgisini başa yerleştirerek kronolojik sıralama sağlayan yeni bir standarttır. Bu sayede veritabanı B-Tree indekslerinde ardışık yazma performansı elde edilir.

UUID dizesi büyük-küçük harf duyarlı mıdır?

RFC standartlarına göre UUID heksadesimal dizesi büyük veya küçük harfle yazılabilir ancak standart küçük harf (lowercase) kullanımını önermektedir. Karşılaştırma işlemlerinde küçük harfe dönüştürülmesi tavsiye edilir.

UUID ile GUID arasındaki fark nedir?

GUID (Globally Unique Identifier), Microsoft tarafından UUID RFC 4122 standardına dayalı olarak kullanılan terimdir. Mantıksal ve matematiksel olarak UUID ile GUID aynı teknik kavramı ve 128 bitlik veri yapısını ifade etmektedir.