Konfiguruję system SaaS, w którym planujemy udostępnić każdemu klientowi własną bazę danych. System jest już skonfigurowany, dzięki czemu możemy łatwo skalować się do dodatkowych serwerów, jeśli obciążenie staje się zbyt duże; mamy nadzieję, że będziemy mieć tysiące, a nawet dziesiątki tysięcy klientów.
pytania
- Czy istnieje jakieś praktyczne ograniczenie liczby mikrodanych, które możesz / powinieneś mieć na jednym serwerze SQL?
- Czy może to wpłynąć na wydajność serwera?
- Czy lepiej jest mieć 10 000 baz danych po 100 MB każda, czy jedną bazę danych o pojemności 1 TB?
Dodatkowe informacje
Kiedy mówię „mikro-bazy danych”, tak naprawdę nie mam na myśli „mikro”; Chodzi mi o to, że naszym celem są tysiące klientów, więc każda pojedyncza baza danych stanowiłaby tylko jedną tysięczną lub mniej całkowitej ilości danych. W rzeczywistości każda baza danych miałaby około 100 MB znaku, w zależności od tego, ile zużywa.
Głównym powodem korzystania z 10 000 baz danych jest skalowalność. Faktem jest, że V1 systemu ma jedną bazę danych i mieliśmy pewne niewygodne momenty, gdy DB obciążało się.
To obciążało procesor, pamięć, wejścia / wyjścia - wszystkie powyższe. Mimo że rozwiązaliśmy te problemy, uświadomiliśmy sobie, że w pewnym momencie, nawet przy najlepszym indeksowaniu na świecie, jeśli odniesiemy taki sukces, jaki mamy nadzieję, po prostu nie możemy umieścić wszystkich naszych danych w jednym wielkim szczerciu ' Baza danych. W przypadku wersji V2 dzielimy fragmenty, abyśmy mogli podzielić obciążenie między wiele serwerów DB.
Ostatni rok spędziłem na opracowywaniu tego odłamkowego rozwiązania. Jest to jedna licencja na serwer, ale i tak jest to załatwione, ponieważ używamy maszyn wirtualnych na platformie Azure. Powodem, dla którego pojawia się teraz pytanie, było to, że wcześniej oferowaliśmy tylko duże instytucje i zakładaliśmy każdą z nich sami. Nasze następne zamówienie to model samoobsługowy, w którym każda osoba posiadająca przeglądarkę może zarejestrować się i stworzyć własną bazę danych. Ich bazy danych będą znacznie mniejsze i znacznie liczniejsze niż duże instytucje.
Wypróbowaliśmy elastyczne pule bazy danych SQL Azure . Wydajność była bardzo rozczarowująca, więc wróciliśmy do zwykłych maszyn wirtualnych.