Ben de buna dalmış durumdayım ve konu hakkında açık ara referans olmama rağmen, topladığım birkaç önemli gerçek var ve paylaşmak istediğim noktalar var:
Bir bölüm , bir mantıksal veri tabanında ya da farklı, bağımsız parçaya da kurucu elemanlarının bir bölümüdür. Veritabanı bölümleme normalde yük dengeleme gibi yönetilebilirlik, performans veya kullanılabilirlik nedenleriyle yapılır.
https://en.wikipedia.org/wiki/Partition_(database)
Kırma gibi bölümleme bir tür olan yatay bölme (HP)
Bir tabloyu daha küçük farklı parçalara böldüğünüz Dikey Bölümleme (VP) de vardır . Normalleştirme, sütunların tablolar arasında bölünmesini de içerir, ancak dikey bölümleme bunun ötesine geçer ve zaten normalleştirilmiş olsa bile sütunları bölümler.
https://en.wikipedia.org/wiki/Shard_(database_architecture)
Tony Baco'nun Quora'daki şemasını (sütunlar ve satırlar yerine) düşünmenizi sağladığı cevabını gerçekten çok seviyorum. O şunu belirtmektedir...
" Yatay bölümleme " veya parçalama, şemayı çoğaltır ve daha sonra verileri bir parça anahtarına göre böler.
" Dikey bölümleme " şemayı bölmeyi içerir (ve veriler sürüş için devam eder).
https://www.quora.com/Whats-the-difference-between-sharding-DB-tables-and-partitioning-them
Oracle'ın Veritabanı Bölümleme Kılavuzu'nda bazı güzel rakamlar vardır. Makaleden birkaç alıntı kopyaladım.
https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm
Bir Tablo Ne Zaman Bölümlendirilir?
Bir tabloyu ne zaman bölümleyeceğinize ilişkin bazı öneriler:
- 2 GB'den büyük tablolar her zaman bölümleme adayı olarak kabul edilmelidir.
- En yeni bölüme yeni verilerin eklendiği geçmiş verileri içeren tablolar. Tipik bir örnek, yalnızca geçerli ayın verilerinin güncellenebildiği ve diğer 11 ayın salt okunur olduğu geçmiş tablodur.
- Bir tablonun içeriğinin farklı türdeki depolama aygıtlarına dağıtılması gerektiğinde.
Bölüm Budama
Bölüm budaması, bölümlemeyi kullanarak performansı arttırmanın en basit ve en önemli yoludur. Bölüm budaması, sorgu performansını birkaç büyüklük düzeyinde artırabilir. Örneğin, bir uygulamanın geçmiş sipariş geçmişini içeren bir Siparişler tablosu içerdiğini ve bu tablonun haftalara göre bölümlendiğini varsayalım. Tek bir hafta için sipariş isteyen bir sorgu Siparişler tablosunun yalnızca tek bir bölümüne erişir. Siparişler tablosunda 2 yıllık geçmiş verileri varsa, bu sorgu 104 bölüm yerine bir bölüme erişir. Bu sorgu, yalnızca bölüm budama nedeniyle 100 kat daha hızlı gerçekleştirilebilir.
Bölümleme Stratejileri
Metinlerini okuyabilir ve her şeyi oldukça iyi açıklayan görüntülerini görselleştirebilirsiniz.
Son olarak, veritabanlarının son derece kaynak yoğun olduğunu anlamak önemlidir:
- İşlemci
- Disk
- I / O
- Hafıza
Birçok DBA, bölümlerin tüm kaynakları paylaşacağı ancak verileri ve / veya dizini bölerek disk ve G / Ç'de bir iyileştirme sağlayacağı aynı makinede bölümlenecektir.
Diğer stratejiler, parçaların% 100 CPU, disk, G / Ç ve belleğe sahip olan ayrı ve farklı bilgi işlem birimlerinde (düğümler) yer alacağı "paylaşılan hiçbir şey" mimarisini kullanacaktır. Kendi avantajları ve karmaşıklıklarını sağlamak.
https://en.wikipedia.org/wiki/Shared_nothing_architecture