On yılı aşkın süredir PostgreSQL veritabanlarında UUID Sürüm 4 (v4) birincil anahtarları kullanıldığında, genellikle kötü performans ve aşırı G/Ç sorunları gözlemlenmiştir. UUID'ler, Postgres'te ikili veri olarak depolanan yerel bir veri türüdür ve çeşitli sürümleri bulunur. Sürüm 4, çoğunlukla rastgele bitlerden oluşur ve değerin ne zaman oluşturulduğu veya nerede üretildiği gibi bilgileri gizler. Postgres 13'ten beri gen_random_uuid() fonksiyonu ile kolayca oluşturulabilen UUID v4'ler hakkında yanlış anlamalar bulunmaktadır; örneğin, daha güvenli oldukları düşüncesi yaygındır. Ancak bu rastgelelik, veritabanı performansını olumsuz etkileyen temel sorundur.
UUID v4'lerin rastgele doğası, veritabanı indekslerinde sayfa bölünmelerine (page splits) ve parçalanmaya (fragmentation) yol açarak ekleme gecikmelerini artırır. Ayrıca, arama işlemleri için aşırı G/Ç'ye neden olur ve önbellek isabet oranını (cache hit ratio) düşürür. Bu durum, özellikle web uygulamalarında ölçek büyüdükçe daha belirgin hale gelir. Makale, UUID v4'lerin genel olarak çok yer kaplaması ve performans düşüşlerine neden olması gibi dezavantajlarını vurgulamaktadır. Performans sorunlarını hafifletmek için indeksleri yeniden oluşturma veya bellek ayarlarını optimize etme gibi yöntemler olsa da, bunlar genellikle geçici çözümlerdir.
Yazar, birincil anahtarlar için sıralı sayılar (integers ve big integers) kullanmaya devam etmeyi önermektedir. Eğer dağıtılmış sistemler gibi nedenlerle UUID kullanımı kaçınılmazsa, zaman sıralı UUID'ler olan Sürüm 7 (UUID v7) gibi alternatiflerin tercih edilmesi gerektiği belirtilmiştir. UUID v7, ilk 48 bitinde bir zaman damgası içerdiği için veritabanı indeksleriyle çok daha iyi çalışır ve performans sorunlarını önemli ölçüde azaltır. Bu nedenle, birincil anahtar seçiminde UUID v4'ten kaçınılması ve daha performanslı alternatiflere yönelinmesi tavsiye edilmektedir.
PostgreSQL veritabanlarında UUID v4 birincil anahtarlarının performans sorunlarına yol açtığı ve bunun yerine sıralı sayılar veya UUID v7 gibi daha verimli alternatiflerin kullanılması gerektiği ortaya konuyor.