Se i database relazionali non si ridimensionano, nulla lo fa. Non preoccuparti dei problemi di ridimensionamento.
SQL ha problemi con alcuni tipi di analisi, ma non ci vogliono molti dati per innescare il problema. Ad esempio, considera una singola tabella con una colonna che fa riferimento ad altre righe in base a una chiave univoca. In genere, questo potrebbe essere utilizzato per creare una struttura ad albero. È possibile scrivere istruzioni SQL veloci che fanno riferimento alla riga correlata. O la riga relativa della riga correlata. In effetti è possibile effettuare un numero specifico di salti. Ma se, per ogni riga, vuoi selezionare un campo sulla prima riga correlata nella catena che soddisfa alcuni criteri, allora diventa complicato.
Prendi in considerazione una tabella delle posizioni degli uffici a livello di nazione, provincia / stato, contea, città e villaggio, con ogni ufficio che fa riferimento all'ufficio a cui riferisce. Non vi è alcuna garanzia che l'ufficio rapporti di ciascun ufficio abbia solo un livello superiore. Per un set selezionato di uffici, non tutti su un livello, si desidera elencare l'ufficio nazionale associato di ciascuno. Ciò richiede cicli di istruzioni SQL e richiederà molto tempo anche oggi. (Ero solito ottenere 30 secondi su una selezione di 30 uffici, ma era tanto tempo fa - e il passaggio a procedure memorizzate mi ha aiutato un po '.)
Quindi l'alternativa è mettere l'intera struttura in un unico grande blocco di dati, etichettarlo e archiviarlo. Quando vuoi analizzare i dati, leggili tutti in memoria in una sola volta, impostando i puntatori per tracciare la struttura e puoi elaborare un paio di milioni di uffici in un batter d'occhio.
Niente di tutto ciò ha molto a che fare con la quantità di dati. La chiave è la natura dell'organizzazione dei dati. Se un layout relazionale aiuta, allora un RDBMS è quello che vuoi. Altrimenti, una sorta di memoria di massa sarà qualcosa da leggermente a un quadrilione di volte più veloce.
Se uno di questi insiemi di dati diventa troppo grande per adattarsi alla memoria, il database non SQL non funziona più. Un altro problema è quando hai bisogno di dati da più di un blocco alla volta; puoi farlo se , e solo se, tutti i blocchi si adattano alla memoria contemporaneamente. E l'utente deve attendere mentre li carichi.
Se il tuo database relazionale ti causerà problemi, lo farà prima di averci inserito molti dati. L'unico problema di ridimensionamento che potresti avere è con il tuo programma quando il blocco di dati che stai assemblando per un DB nosql - se devi usarne uno - diventa troppo grande per esso. (Leggi errori di memoria insufficiente. Le lingue più recenti a volte fanno cose strane con la memoria.)