リレーショナルデータベースが拡張されない場合、何も拡張されません。スケーリングの問題を心配する必要はありません。
SQLにはある種の分析に関する問題がありますが、問題を引き起こすのに多くのデータを必要としません。たとえば、一意のキーに基づいて他の行を参照する列を持つ単一のテーブルを考えます。通常、これはツリー構造を作成するために使用されます。関連する行を参照する高速SQLステートメントを作成できます。または、関連する行の関連する行。実際、特定の数のジャンプを行うことができます。ただし、各行に対して、チェーンの最初の関連する行で、ある基準を満たすフィールドを選択する場合、複雑になります。
国、州/州、郡、町、村のレベルでオフィスの場所のテーブルを考えてみましょう。各オフィスは、報告先のオフィスを参照します。各オフィスのレポートオフィスが1レベル上にあるという保証はありません。すべてが1つのレベルにあるわけではない、選択されたオフィスのセットについて、各オフィスに関連付けられているナショナルオフィスをリストする必要があります。これにはSQLステートメントのループが必要であり、今日でも長い時間がかかります。(以前は30のオフィスを選択して30秒を取得していましたが、それはかなり前のことであり、ストアドプロシージャへの切り替えは少し役立ちました。)
そのため、別の方法は、構造全体を1つの大きなデータブロックに入れ、ラベルを付けて保存することです。データを分析する場合は、一度にすべてのデータをメモリに読み込み、構造を追跡するためのポインターを設定すれば、瞬く間に数百万のオフィスを処理できます。
これはどれもデータの量とは関係ありません。キーは、データの組織の性質です。リレーショナルレイアウトが役立つ場合は、RDBMSが必要です。そうでない場合、ある種のバルクストレージは、わずかに1倍から1兆倍高速になります。
これらのデータセットの1つが大きすぎてメモリに収まらない場合、SQL以外のデータベースは機能しなくなることに注意してください。別の問題は、一度に複数のブロックからのデータが必要な場合です。あなたはこれを行うことができた場合、およびのみ場合、すべてのブロックを一度にメモリに収まります。そして、ユーザーはそれらをロードするまで待つ必要があります。
リレーショナルデータベースが問題を引き起こす場合、大量のデータを入れる前にそれを行います。唯一のスケーリングの問題は、nosql DBにアセンブルしているデータのブロック(使用する必要がある場合)が大きすぎる場合のプログラムの問題です。(メモリ不足エラーについて調べてください。新しい言語では、メモリに関して奇妙なことをすることがあります。)