Si las bases de datos relacionales no se escalan, nada lo hace. No te preocupes por los problemas de escala.
SQL tiene problemas con algunos tipos de análisis, pero no se necesitan muchos datos para desencadenar el problema. Por ejemplo, considere una sola tabla con una columna que hace referencia a otras filas en función de una clave única. Por lo general, esto podría usarse para crear una estructura de árbol. Puede escribir sentencias SQL rápidas que hagan referencia a la fila relacionada. O la fila relacionada de la fila relacionada. De hecho, puedes hacer cualquier número específico de saltos. Pero si, para cada fila, desea seleccionar un campo en la primera fila relacionada en la cadena que cumpla algún criterio, entonces se complica.
Considere una tabla de ubicaciones de oficinas a nivel de nación, provincia / estado, condado, pueblo y aldea, con cada oficina haciendo referencia a la oficina a la que informa. No hay garantía de que la oficina de informes de cada oficina esté solo un nivel más arriba. Para un conjunto seleccionado de oficinas, no todas en un nivel, desea enumerar la oficina nacional asociada de cada uno. Esto requiere bucles de declaraciones SQL y llevará mucho tiempo incluso hoy. (Solía obtener 30 segundos en una selección de 30 oficinas, pero eso fue hace mucho tiempo, y cambiar a procedimientos almacenados ayudó un poco).
Entonces, la alternativa es poner toda la estructura en un gran bloque de datos, etiquetarlo y almacenarlo. Cuando desee analizar los datos, léalos todos en la memoria de una vez, configurando punteros para rastrear la estructura, y puede procesar un par de millones de oficinas en un abrir y cerrar de ojos.
Nada de esto tiene mucho que ver con la cantidad de datos. La clave es la naturaleza de la organización de los datos. Si un diseño relacional ayuda, entonces un RDBMS es lo que desea. Si no, algún tipo de almacenamiento a granel va a ser desde un poco hasta un billón de veces más rápido.
Tenga en cuenta que si uno de estos conjuntos de datos se vuelve demasiado grande para caber en la memoria, su base de datos que no sea SQL ya no funcionará. Otro problema es cuando necesita datos de más de un bloque a la vez; puede hacer esto si , y solo si, todos los bloques caben en la memoria a la vez. Y el usuario tiene que esperar mientras los carga.
Si su base de datos relacional le causará problemas, lo hará antes de que ingrese muchos datos. El único problema de escala que puede tener es con su programa cuando el bloque de datos que está ensamblando para un DB nosql, si tiene que usar uno, se vuelve demasiado grande para él. (Lea sobre errores de falta de memoria. Los idiomas más nuevos a veces hacen cosas extrañas con la memoria).