Ich richte ein SaaS-System ein, in dem wir jedem Kunden eine eigene Datenbank zur Verfügung stellen möchten. Das System ist bereits so eingerichtet, dass wir problemlos auf zusätzliche Server skalieren können, wenn die Auslastung zu hoch wird. Wir hoffen, Tausende oder sogar Zehntausende von Kunden zu haben.
Fragen
- Gibt es eine praktische Beschränkung für die Anzahl der Mikrodatenbanken, die Sie auf einem SQL Server haben können / sollten?
- Kann sich dies auf die Leistung des Servers auswirken?
- Ist es besser, 10.000 Datenbanken mit jeweils 100 MB oder eine Datenbank mit 1 TB zu haben?
Zusätzliche Information
Wenn ich "Mikro-Datenbanken" sage, meine ich nicht wirklich "Mikro"; Ich meine nur, dass wir Tausende von Kunden anstreben, sodass jede einzelne Datenbank nur ein Tausendstel oder weniger des gesamten Datenspeichers ausmacht. In der Realität würde jede Datenbank etwa 100 MB groß sein, je nachdem, wie viel davon genutzt wird.
Der Hauptgrund für die Verwendung von 10.000 Datenbanken liegt in der Skalierbarkeit. Fakt ist, V1 des Systems hat eine Datenbank, und wir hatten einige unangenehme Momente, als die DB unter der Last belastet war.
CPU, Arbeitsspeicher, E / A waren überlastet - all das oben Genannte. Obwohl wir diese Probleme behoben haben, haben sie uns bewusst gemacht, dass wir trotz der besten Indizierung der Welt nicht alle Daten in einem großen Hönkin zusammenfassen können, wenn wir so erfolgreich sind, wie wir es uns erhoffen 'Datenbank. Für V2 werden wir also sharden, damit wir die Last auf mehrere DB-Server aufteilen können.
Ich habe das letzte Jahr damit verbracht, diese Lösung zu entwickeln. Es ist eine Lizenz pro Server, aber das ist in jedem Fall erledigt, da wir VMs auf Azure verwenden. Der Grund, warum die Frage jetzt auftaucht, ist, dass wir früher nur großen Institutionen angeboten und jede einzelne von ihnen selbst gegründet haben. Unsere nächste Aufgabe ist ein Self-Service-Modell, bei dem sich jeder mit einem Browser anmelden und eine eigene Datenbank erstellen kann. Ihre Datenbanken werden viel kleiner und zahlreicher sein als die der großen Institutionen.
Wir haben versucht, elastische Azure SQL-Datenbankpools zu erstellen . Die Leistung war sehr enttäuschend, daher haben wir wieder auf reguläre VMs umgestellt.