Wenn relationale Datenbanken nicht skaliert werden, geschieht nichts. Machen Sie sich keine Sorgen über Skalierungsprobleme.
SQL hat Probleme mit einigen Arten von Analysen, aber es werden nicht viele Daten benötigt, um das Problem auszulösen. Stellen Sie sich beispielsweise eine einzelne Tabelle mit einer Spalte vor, die auf der Grundlage eines eindeutigen Schlüssels auf andere Zeilen verweist. In der Regel kann dies zum Erstellen einer Baumstruktur verwendet werden. Sie können schnelle SQL-Anweisungen schreiben, die auf die zugehörige Zeile verweisen. Oder die verwandte Zeile der verwandten Zeile. Tatsächlich können Sie beliebig viele Sprünge machen. Wenn Sie jedoch für jede Zeile ein Feld in der ersten verwandten Zeile in der Kette auswählen möchten, das ein bestimmtes Kriterium erfüllt, wird es kompliziert.
Betrachten Sie eine Tabelle mit Bürostandorten auf der Ebene von Nation, Provinz / Bundesstaat, Landkreis, Stadt und Dorf, wobei jedes Büro auf das Büro verweist, an das es berichtet. Es gibt keine Garantie dafür, dass die Meldestelle eines jeden Büros nur eine Ebene höher ist. Für eine ausgewählte Gruppe von Ämtern, die sich nicht alle auf einer Ebene befinden, möchten Sie die jeweiligen nationalen Ämter auflisten. Dies erfordert Schleifen von SQL-Anweisungen und wird auch heute noch viel Zeit in Anspruch nehmen. (Früher hatte ich 30 Sekunden für eine Auswahl von 30 Büros, aber das ist lange her - und der Wechsel zu gespeicherten Prozeduren hat ein bisschen geholfen.)
Die Alternative besteht also darin, die gesamte Struktur in einem großen Datenblock zusammenzufassen, zu beschriften und zu speichern. Wenn Sie die Daten analysieren möchten, lesen Sie sie alle auf einmal in den Speicher, richten Sie Zeiger ein, um die Struktur zu verfolgen, und Sie können im Handumdrehen mehrere Millionen Büros bearbeiten.
Nichts davon hat viel mit der Datenmenge zu tun. Der Schlüssel ist die Art der Organisation der Daten. Wenn ein relationales Layout hilft, ist ein RDBMS genau das, was Sie wollen. Wenn nicht, wird irgendeine Art von Massenspeicher etwas bis zu einer Billiarde Mal schneller sein.
Beachten Sie, dass Ihre Nicht-SQL-Datenbank nicht mehr funktioniert, wenn einer dieser Datensätze zu groß wird, um in den Arbeitsspeicher zu passen. Ein weiteres Problem ist, wenn Sie Daten von mehr als einem Block gleichzeitig benötigen. Sie können dies tun , wenn , und nur wenn alle Blöcke passen auf einmal im Speicher. Und der Benutzer muss warten, während Sie sie laden.
Wenn Ihre relationale Datenbank zu Problemen führen kann, geschieht dies, bevor Sie viele Daten in die Datenbank geschrieben haben. Das einzige Skalierungsproblem, das Sie möglicherweise haben, besteht in Ihrem Programm, wenn der Datenblock, den Sie für eine nosql-Datenbank zusammenstellen - wenn Sie einen verwenden müssen - zu groß dafür wird. (Informieren Sie sich über Speicherfehler. Die neueren Sprachen haben manchmal seltsame Probleme mit dem Speicher.)