Veritabanı Bölümleme
Database Table Partitioning and Sharding · Ayrıca şöyle bilinir: table partitioning, sharding
Veritabanı bölümleme, performans ve ölçeklenebilirliği artırmak amacıyla büyük tabloları birden çok fiziksel depolama birimi veya sunucu arasında bölme tekniğidir. Dağıtık veritabanları bağlamında geliştirilen bölümleme, bireysel sorguların daha küçük veri alt kümelerine erişmesine olanak tanıyarak G/Ç'yi azaltır ve veri büyüdükçe yatay ölçeklenmeyi sağlar.
Tam yöntemi oku
Bu bölümü okumak için ücretsiz hesapla giriş yapın.
Ne zaman kullanılır
Tablolar fiziksel disk kapasitesini aştığında, tablo boyutundan dolayı performans düştüğünde veya yazma işlemlerini birden çok sunucuya ölçeklendirmeniz gerektiğinde bölümleme uygulayın. Bölümleme, sorguların bölüm sınırlarıyla doğal olarak uyumlu olduğu durumlarda en etkilidir. Varsayımlar arasında tanımlanabilir bölümleme anahtarları ve dağıtık yürütmeden kaynaklanan kabul edilebilir performans ödünleşimleri bulunur.
Güçlü yönler & sınırlılıklar
- Verileri birden çok sunucuya dağıtarak yatay ölçeklenmeyi sağlar
- Bölüm budama, gereksiz veri erişimini ortadan kaldırarak sorgu performansını artırır
- Bölümlerin bağımsız bakımına olanak tanır (yedekleme, sıkıştırma, arşivleme)
- Birden çok bölümü kapsayan sorgular dağıtık yürütme ve sonuç birleştirme gerektirir
- Bölümleme anahtarı seçimi kritiktir; kötü seçimler sorgu optimizasyonunu sınırlar
- Bölüm ekleme veya kaldırma karmaşık olabilir ve veri yeniden dağıtımını gerektirebilir
SSS
Bölümleme ve sharding arasındaki fark nedir?
Bölümleme, bir tabloyu bağımsız parçalara böler ve bunlar aynı sunucuda depolanabilir. Sharding ise bölümleri farklı sunuculara dağıtır. Sharding, dağıtık koordinasyon ekler ancak tek bir makinenin ötesinde yatay ölçeklenmeyi sağlar.
İyi bir bölümleme anahtarını nasıl seçerim?
Anahtarları şunlara göre seçin: (1) doğal erişim modelleri (anahtara göre filtreleyen sorgular), (2) dengeli dağılım (çarpık bölümlerden kaçınma), (3) zamansal veya coğrafi alaka düzeyi. Bölüm başına çok fazla satır oluşturan düşük kardinaliteli sütunlardan kaçının.
Birden çok bölümü sorguladığımda ne olur?
Veritabanı, sorguyu ilgili tüm bölümlere karşı bağımsız olarak yürütür, ardından sonuçları birleştirir. Bu, tek bölümlü bir sorgudan daha yavaştır ancak yine de tüm bölümlenmemiş tabloyu sorgulamaktan daha hızlıdır.
Bir bölümdeki büyüyen verileri nasıl yönetirim?
Büyüyen tablolar için zaman tabanlı bölümleme kullanın, periyodik olarak (günlük, aylık) yeni bölümler oluşturun. Eski bölümleri daha yavaş depolamaya arşivleyin. Bazı veritabanları, aşırı büyümüş bölümleri bölmek için bölüm bölmeyi destekler.
Kaynaklar
- Stonebraker, M., & Schloss, G. A. (1986). Distributed INGRES to homogeneous and heterogeneous computer systems. Proceedings of the ACM SIGMOD International Conference on Management of Data, 64-77. link ↗
- Johnson, B. (2000). Distributed systems and databases (2nd ed.). New York: Morgan Kaufmann. link ↗
- Garcia-Molina, H., Ullman, J. D., & Widom, J. (2009). Database Systems: The Complete Book (2nd ed.). Pearson Education. link ↗
Bu sayfayı kaynak gösterin
ScholarGate. (2026, June 3). Database Table Partitioning and Sharding. ScholarGate. https://scholargate.app/tr/information-systems/database-partitioning