Se i database relazionali non vengono ridimensionati, non esiste nulla. 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 faccia riferimento ad altre righe in base a una chiave univoca. In genere, questo potrebbe essere usato 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 puoi fare qualsiasi numero specifico di salti. Ma se, per ogni riga, vuoi selezionare un campo sulla prima riga correlata della catena che soddisfa qualche criterio, allora diventa complicato.
Considera 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. C'è no garanzia che l'ufficio di reporting di ogni ufficio è solo a un livello. Per un gruppo 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. (Avevo 30 secondi su una selezione di 30 uffici, ma quello era un lungo tempo fa - e il passaggio alle stored procedure mi aiutava un po '.)
Quindi l'alternativa è mettere l'intera struttura in un unico grande blocco di dati, etichettarlo e memorizzarlo. Quando si desidera analizzare i dati, leggerli tutti in memoria in una volta sola, impostare i puntatori per tracciare la struttura e elaborare un paio di milioni di uffici in un batter d'occhio.
Nessuno di questi 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 è ciò che desideri. In caso contrario, una sorta di archiviazione di massa sarà di qualche cosa da leggermente a un quadrilione volte più veloce.
Si noti che 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 fare questo if e solo se, tutti i blocchi si adattano subito alla memoria. E l'utente deve aspettare mentre li carichi.
Se il tuo database relazionale causerà problemi, lo farà prima di inserire molti dati in esso. 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 questo. (Leggi gli errori di memoria esaurita. I linguaggi più recenti a volte fanno cose strane con la memoria.)