Hash Tablosu Nedir?
İngilizce: Hash Table
Hash tablosu, anahtarları hash fonksiyonuyla kovalara dağıtarak hızlı arama, ekleme ve silme sağlayan veri yapısıdır.
Hash Tablosu Nedir?
Hash tablosu, anahtar-değer çiftlerini hızlı erişim için kullanan temel veri yapılarından biridir. Bir anahtar, hash fonksiyonundan geçirilir ve çıkan değer hangi kovada saklanacağını belirler. Bu yüzden ortalama durumda arama, ekleme ve silme işlemleri sabit zamana yakın çalışır.
Programlama dillerindeki Map, Dictionary, HashMap ve nesne tabanlı lookup yapılarının çoğu bu fikre dayanır. Örneğin kullanıcı ID’sinden kullanıcı kaydına hızlı ulaşmak tipik kullanım alanıdır.
Nasıl Çalışır?
Hash fonksiyonu aynı anahtar için her zaman aynı sonucu üretmelidir. İki farklı anahtar aynı kovaya düşerse çakışma oluşur. Bu durum chaining, open addressing veya probing gibi yöntemlerle çözülür.
Performans; hash fonksiyonunun dağılımına, tablo doluluk oranına ve yeniden boyutlandırma stratejisine bağlıdır. Kötü dağılım çok sayıda çakışma yaratırsa teorik olarak hızlı olan işlem pratikte yavaşlayabilir.
İş Dünyasında Kullanımı
Hash tabloları cache, oturum yönetimi, indeksleme, deduplikasyon, sayaç tutma ve hızlı konfigürasyon erişimi gibi birçok altyapı parçasında dolaylı olarak bulunur. Bir e-ticaret sisteminde SKU kodundan stok bilgisine erişmek veya bir API gateway’de token bilgisini hızlı bulmak buna örnektir.
Redis gibi bellek içi sistemler de hash benzeri veri yapılarını uygulama seviyesinde sunar. Ancak kalıcılık, bellek sınırı ve veri tutarlılığı ihtiyaçları hash tablosu seçimini tek başına belirlemez.