O stackoverflow podcast'lerdeki hatırlamak Sis Creek için müşteri başına bir veritabanını kullanmak FogBugz . Bunun, Fogbugz On Demand sunucularının 10 binlerce veritabanının olduğu anlamına geldiğini düşünüyorum.
Bir web uygulaması geliştirmeye yeni başlıyoruz ve çözmek için benzer bir sorun yaşıyoruz (kendi izole verileriyle çok sayıda müşteri).
Müşteri başına veri tabanı kullanırken ne gibi problemler beklemeliyim? Onları nasıl çözebilirim?
İlk Düşüncelerim
Veritabanının müşteri başına avantajları
- Basit veritabanı şeması
- Daha basit yedeklemeler - her müşteriyi diğer müşterileri etkilemeden sırayla yedekleyebilirsiniz.
- Belirli bir müşteri verisini dışa aktarmayı kolaylaştırır.
- Daha iyi önbellek performansı - daha etkin tablolardan birine yapılan bir yazı, yalnızca bu işlemi yazan o müşteriyi etkiler.
- Donanım arasında ölçeklendirmek daha kolaydır. Örneğin, 1 ila 2 sunucu arasında gitmemiz gerektiğinde, müşterilerimizin yarısını yeni sunucuya taşıyoruz.
Dezavantajları
- MySQL 5.000 veritabanıyla başa çıkabilir mi? Performans berbat olur mu?
- Şemada yapılan değişikliklerin tüm veritabanlarında çoğaltılması zor olabilir. Şema sürümü ve bir veritabanından bir sürümden diğerine nasıl bir veritabanı alınacağını anlayan bir komut dosyası gibi gerçekten bunun için otomatik bir plana sahip olmalıyız.
- Tüm müşterilerimiz için ortak olan her şeyi yapmak garip veya imkansız olabilir
- Yukarıdakine benzer, ancak tüm müşterilerimiz arasında yapmak istediğimiz herhangi bir analitik mümkün olmayabilir. Örneğin tüm müşteriler arasında kullanımı nasıl izlemeliyiz?
USE CompanyData;