Если реляционные базы данных не масштабируются, ничего не происходит. Не беспокойтесь о проблемах масштабирования.
У SQL есть проблемы с некоторыми видами анализа, но для запуска проблемы не требуется много данных. Например, рассмотрим одну таблицу со столбцом, который ссылается на другие строки на основе уникального ключа. Как правило, это может быть использовано для создания древовидной структуры. Вы можете написать быстрые операторы SQL, которые ссылаются на соответствующую строку. Или связанный ряд связанный ряд. На самом деле вы можете сделать любое конкретное количество прыжков. Но если для каждой строки вы хотите выбрать поле в первой связанной строке в цепочке, которое удовлетворяет некоторому критерию, то это усложняется.
Рассмотрим таблицу местоположений офисов на уровне страны, провинции / штата, округа, города и деревни, где каждый офис ссылается на офис, которому подчиняется. Нет никаких гарантий, что в отделении отчетности каждого офиса будет только один уровень. Для выбранного набора офисов, не всех на одном уровне, вы хотите перечислить связанный национальный офис каждого из них. Это требует циклов SQL-операторов и займет много времени даже сегодня. (Я имел обыкновение получать 30 секунд на выбор из 30 офисов, но это было давно - и переход на хранимые процедуры помог немного.)
Таким образом, альтернатива состоит в том, чтобы поместить всю структуру в один большой блок данных, пометить его и сохранить. Если вы хотите проанализировать данные, считайте все это в память за один раз, устанавливая указатели для отслеживания структуры, и вы можете обработать пару миллионов офисов в мгновение ока.
Ничто из этого не имеет большого отношения к количеству данных. Ключом является характер организации данных. Если реляционная структура помогает, тогда вам нужна RDBMS. Если нет, то какое-то объемное хранилище будет быстрее от небольшого до четырех миллиардов раз.
Обратите внимание, что если один из этих наборов данных станет слишком большим, чтобы поместиться в память, ваша база данных, отличная от SQL, больше не будет работать. Другая проблема - когда вам нужны данные из более чем одного блока одновременно; Вы можете сделать это, если и только если все блоки помещаются в память одновременно. И пользователь должен ждать, пока вы загрузите их.
Если ваша реляционная база данных вызовет у вас проблемы, она сделает это до того, как вы добавите в нее много данных. Единственная проблема масштабирования, с которой вы можете столкнуться, связана с вашей программой, когда блок данных, который вы собираете для базы данных nosql - если вам нужно ее использовать - становится слишком большим для нее. (Читайте об ошибках нехватки памяти. Новые языки иногда делают странные вещи с памятью.)