# Sharding vs Replikasyon

Adres: https://softwaredictionary.org/tr/karsilastirma/sharding-vs-replication
Son güncelleme: 2026-09-30

Kısaca: Sharding veritabanını böler, her sunucu verinin yalnızca bir kısmını saklar; replikasyon ise aynı veriyi yedeklilik ve okuma için birkaç sunucuya kopyalar.

## Sharding ile replikasyon (replication) arasındaki fark nedir?

Sharding, yatay bölümlemedir: satırlar, kullanıcı kimliği ya da bölge gibi bir shard anahtarı kullanılarak shard denen birkaç veritabanı sunucusuna dağıtılır. Replikasyon ise aynı verinin kopyalarını birden çok sunucuda tutar; genellikle yazmaları kabul eden bir birincil (primary) sunucu ve onun değişikliklerini izleyen replikalar vardır.

Farklı sınırları çözerler. Sharding, tek bir makine için çok fazla veri ya da çok fazla yazma olduğunda yardımcı olur, çünkü her shard yalnızca kendi dilimini işler. Replikasyon erişilebilirlik ve okuma ölçeklemesi sağlar: birincil bozulursa bir replika devralabilir ve okuma ağırlıklı iş yükleri sorguları kopyalara yayabilir.

Büyük sistemler neredeyse her zaman ikisini de kullanır: veri shard'lanır ve her shard, tek bir arızanın veri kümesinin bir kısmını kaybettirmemesi için replike edilir. Birçok dağıtık veritabanı bunu kendiliğinden yapar; veriyi aralıklara ya da bölümlere ayırır ve her birinin birkaç kopyasını tutar.

Sık yapılan bir yanlış, replikasyonun yazmaları ölçeklediği düşüncesidir. Her yazma yine birincile gider ve her replikaya kopyalanmalıdır; bu yüzden replikasyon okuma kapasitesini çoğaltır ama yazma kapasitesini değil. Sharding yazmaları ölçekler, ama shard'lar arası sorgular, shard'lar arası işlemler ve verinin yeniden dengelenmesi onu çok daha karmaşık kılar; bu yüzden genellikle daha sonraki bir adımdır.

| Özellik | Sharding | Veritabanı Replikasyonu |
| --- | --- | --- |
| Ne yapar | Veriyi ayrı parçalara böler | Aynı veriyi birkaç sunucuya kopyalar |
| Her sunucunun tuttuğu | Yalnızca kendi satır alt kümesi | Verinin tam bir kopyası |
| Neyi ölçekler | Depolamayı, yazmaları ve okumaları | Yalnızca okumaları; yazmalar yine birincile gider |
| Hata toleransı | Kendi başına yok; bir shard'ı kaybetmek verisini kaybetmektir | Yüksek; bir replika başarısız bir birincilin yerini alabilir |
| Karmaşıklık | Yüksek: shard anahtarları, shard'lar arası sorgular, yeniden dengeleme | Orta: replikasyon gecikmesi ve yük devretme |
| Tutarlılık sorunu | Shard'lar arası işlemler zordur | Replikalar birincilin kısa süre gerisinde kalabilir |
| En uygun olduğu yer | Tek bir makine için çok büyük veri kümeleri veya yazma yükleri | Yüksek erişilebilirlik ve okuma ağırlıklı iş yükleri |

## Sharding şu durumlarda doğru seçim

- Verileriniz artık tek bir sunucuya sığmıyor.
- Yazma trafiği tek bir birincilin kaldırabileceğini aşıyor.
- Veri, müşteri veya bölge gibi bir anahtara göre temiz biçimde ayrışıyor.

## Veritabanı Replikasyonu şu durumlarda doğru seçim

- Veritabanı bir sunucu arızasından sağ çıkmalı.
- Okumalar yazmalardan çok daha fazla.
- Kopyaları diğer bölgelerdeki kullanıcılara yakın ya da analitik için istiyorsunuz.

## Sık sorulan sorular

**Sharding ve replikasyon birlikte kullanılabilir mi?**

Evet ve büyük sistemler genellikle böyle yapar: veri shard'lara bölünür ve her shard replike edilir; böylece tek bir sunucunun arızası verinin bir kısmını kaybettirmez ya da engellemez.

**Replikasyon bir yedek midir?**

Kendi başına değil. Replikalar, kazara silmeler ve bozulmuş veri dahil her değişikliği neredeyse anında kopyalar; bu yüzden yine de belirli bir ana dönüş (point-in-time) yedeklerine ihtiyacınız vardır.

**Shard anahtarı nedir?**

Shard anahtarı, bir satırın hangi shard'a ait olduğuna karar vermek için kullanılan sütun ya da değerdir, örneğin bir kullanıcı kimliği. İyi bir shard anahtarı veriyi ve trafiği eşit dağıtır ve ilişkili satırları bir arada tutar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
