Yapım aşamasında olan bir çevrimiçi pazar ürünü için, bir veritabanı paylaşım çözümünün uygulanmasını gerektiren bir durumum var. Ben şaka yapmak için yeni ve bu forumda yazılarını okuduktan sonra iş varlıkların uygun olacak bir dizin tabanlı sharding strateji hissediyorum. Fakat yine de, bu tür bir keskinleştirilmiş çözümle benimsemenin, denormalizasyon ve veri senkronizasyonu ile ilgili en iyi uygulamalardan hala emin değilim. 3 ana varlık, tedarikçi, müşteri ve sipariş olacaktır. Sipariş verilerinin çoğunun tedarikçi yöneticileri tarafından gerçekleştirileceği için tedarikçi kimliğine dayanarak veritabanını parçalamayı planlıyorum. Bu, bir tedarikçi için siparişlerin, çapraz db getirmelerini ortadan kaldıran tek bir db örneğinden alınmasını sağlayacaktır. Ancak, bu durumda, müşteriler sipariş bilgilerini görüntülediğinde, verinin birden çok db örneğinde yer alacağı ve çoklu veritabanı getirme gerektireceği belirtilmektedir. Bu tür senaryolar keskin bir çözümde ortaya çıktığında tipik olarak ne yapılır.veri tabanı oluşturma stratejisi
cevap
Sanırım,% 99,9'luk bir olasılıkla, payandalamaya ihtiyacınız yoktur.
- Kişisel veritabanı ekleme/güncelleme oranı yakındır veya uygun bir maliyetle yapabilirsiniz satın yüksek spec sunucusunun kapasitesini VE
- aşan zaten You tarımla da: eğer
Sen Sharding gerek vb okuma sorguları, raporlama, yedekleme çoğunda salt okunur çoğaltılmış için köle
- dışarı size master sunucuya kapalı herhangi gereksiz veya alakasız güncelleme-ağır iş yüklerini taşımak için fonksiyonel bölme yapmış
Yukarıdakilerin üçüne kesinlikle "evet" diyemezseniz, parçalamaya gerek yoktur.
Oku
http://www.mysqlperformanceblog.com/2009/08/06/why-you-dont-want-to-shard/
Veritabanı Sharding veritabanı boyutunda çoklu TBs olmaya alır önce bile son derece etkili olabilir. Bulduğumuz ana sebep, bellek/CPU'nun diske oranının önemli ölçüde değişmesi ve MySQL gibi DBMS ürünlerinin son kullanılan endeksleri ve verileri belleğe yerleştirmede gerçekten mükemmel olmasından kaynaklanıyor.
Veri kayması sorunlarınız için, bu teknik yardımcı olabilir.
- Paralel Sorgu (buna "Git Balık" sorgusu diyoruz). Bu fikirle müşteri siparişlerinizi aynı anda birden fazla parçadan sorgulayabilir ve sonuçları birleştirebilirsiniz. Eğer bitmişse bu çok verimli olabilir.
Sıklıkla değiştirilmeyen veriler için, genel tablo tabloları için Genel Tablo çoğaltmasını öneririz, ancak bu, Müşteri Siparişleri kadar etkin bir şeyle pek yardımcı olmaz. Her durumda, sonlandırma, çok uygun maliyetli bir şekilde uygulanabilir ve yazımlar için doğrusal olarak ölçeklenebilir ve çoğunlukla, yukarıdakilere dayanan okumalar için doğrusal olarak daha iyi olabilir.
Ayrıca, MongoDB veya Cassandra
Ayrıca hızlı erişim
Ayrıca birden köle ile efendi köle çoğaltma içine bakabilirsiniz için veri önbelleğe memcache kullanabilirsiniz olarak NoSQL DBS denemek isteyebilirsiniz.
- 1. Tetikleyiciye özel veri tabanı
- 2. Tohum üretim veri tabanı
- 3. Sequelize Veri Tabanı Oluştur
- 4. Veri dökülmeden veri tabanı şemasını güncelle?
- 5. İki veri tabanı nasıl karşılaştırılır?
- 6. Müzik Genom Veri Tabanı Erişimi
- 7. Yüksek Puan Veri Tabanı Ölçeklendiriliyor
- 8. Basit Nesne Veri Tabanı Ürün
- 9. C# sql veri tabanı express
- 10. Bir Android SQLite Veri Tabanı
- 11. PHP - Veri tabanı sorununa ekle
- 12. Pandaların veri tabanı çokdizli alt düzeyine sahip
- 13. Groovy'den Veri Tabanı Şeması Bilgisine Erişim
- 14. Veri tabanı i18n java web uygulaması için
- 15. Tuple dizini aralık dışı veri tabanı
- 16. Oluşturulmadan Önce Veri Tabanı Varsa Kontrol Edin
- 17. React giriş bileşenine iliştirilen bir Veri Tabanı
- 18. SQL Server Veri Tabanı İlerlemesiyle ilerleme
- 19. Enums EF 5.0 - Veri Tabanı İlk
- 20. C# XMLDevre Veri Tabanı için Belge?
- 21. @ManyToMany birleştirme tablosu olmadan (eski veri tabanı)
- 22. django - TestCase fikstürleri için veri tabanı belirtin
- 23. Django Dynamic Drop-Down Listesinden Veri Tabanı
- 24. SQL server veri tabanı tablo performansı
- 25. Parametreler, Veri Tabanı Paneli SSRS 2005
- 26. PHP'de Veri Tabanı Giriş Bilgilerini Gizle
- 27. Kod İlk ve Veri Tabanı İlk
- 28. Bir veri ambarında gerçekleşen görünümler için yenileme stratejisi
- 29. Scala'da Apache Spark'deki veri kümesine veri tabanı nasıl dönüştürülür?
- 30. Kod İlk Entity Framework ile Veri Tabanı Oluşturma - Yabancı anahtar sözdizimi
Teşekkürler. Sana tamamen katılıyorum. Bununla birlikte, parçalamak zorunda olduğum varsayıldığında, verilen problem için uygun stratejinin ne olduğu. Top sahası tahminlerim, DB'nin geçmiş/geçmiş veriler olmadan yaklaşık 1 TB boyutunda olacağını gösterir. – cosmos
Kimsenin size bunu anlatabileceğini sanmıyorum, uygulamanızın hangi bölümlerinin en çok veritabanı ile yarıştığına dair detaylı bilgi sahibi değilseniz bunu yapamazsınız. Eğer sivri uçluyorsanız, muhtemelen diğer birçok caddeyi tüketmiş olursunuz. Erişim modeline bağlı olarak, 1Tb büyük değildir ve hala 1 kutu üzerinde çalışabilir (ilgili hatalar vb. Ile) – MarkR