Jeśli relacyjne bazy danych nie skalują się, nic nie robi. Nie martw się problemami ze skalowaniem.
SQL ma problemy z niektórymi rodzajami analiz, ale do uruchomienia problemu nie potrzeba dużo danych. Rozważmy na przykład pojedynczą tabelę z kolumną, która odwołuje się do innych wierszy na podstawie unikalnego klucza. Zwykle można tego użyć do stworzenia struktury drzewa. Możesz pisać szybkie instrukcje SQL, które odwołują się do odpowiedniego wiersza. Lub powiązany wiersz. W rzeczywistości możesz wykonać dowolną liczbę skoków. Ale jeśli dla każdego wiersza chcesz wybrać pole w pierwszym pokrewnym wierszu w łańcuchu, który spełnia pewne kryterium, komplikuje się.
Rozważ tabelę lokalizacji biur na poziomie kraju, prowincji, województwa, miasta i wsi, przy czym każde biuro odnosi się do biura, do którego się zgłosi. Nie ma gwarancji, że biuro sprawozdawcze każdego biura jest tylko o jeden poziom wyżej. W przypadku wybranego zestawu biur, nie wszystkich na jednym poziomie, chcesz podać listę powiązanych biur krajowych. Wymaga to pętli instrukcji SQL i zajmie to dużo czasu nawet dzisiaj. (Kiedyś otrzymywałem 30 sekund w wybranych 30 biurach, ale to było dawno temu - i przejście do procedur przechowywanych trochę pomogło.)
Alternatywą jest więc umieszczenie całej struktury w jednym dużym bloku danych, oznaczenie jej i przechowanie. Kiedy chcesz przeanalizować dane, odczytaj je wszystkie do pamięci za jednym razem, konfigurując wskaźniki do śledzenia struktury, i możesz przetworzyć kilka milionów biur w mgnieniu oka.
Nic z tego nie ma wiele wspólnego z ilością danych. Kluczem jest charakter organizacji danych. Jeśli układ relacyjny pomaga, to RDBMS jest tym, czego potrzebujesz. Jeśli nie, jakiś rodzaj magazynowania masowego będzie szybszy od nieco do biliardów razy.
Pamiętaj, że jeśli jeden z tych zestawów danych stanie się zbyt duży, aby zmieścił się w pamięci, baza danych inna niż SQL nie będzie działać. Kolejnym problemem jest to, że potrzebujesz danych z więcej niż jednego bloku naraz; można to zrobić , jeżeli i tylko jeżeli wszystkie bloki zmieścić się w pamięci na raz. I użytkownik musi poczekać, aż je załadujesz.
Jeśli twoja relacyjna baza danych spowoduje problemy, zrobi to przed włożeniem do niej dużej ilości danych. Jedyny problem ze skalowaniem, jaki możesz mieć, to problem z programem, gdy blok danych, który gromadzisz dla bazy danych nosql - jeśli musisz go użyć - staje się dla niego za duży. (Przeczytaj o błędach braku pamięci. Nowsze języki czasami robią dziwne rzeczy z pamięcią).