開発者の観点から言えば、そこにあるほぼすべての従来の主流のデータベースエンジンは、スケールアップすることしかできず、スケールアウトは非常に後の考えです。
近年、スケーラビリティと可用性の高いシステムの必要性に伴い、既存のデータベースをスケールアウトする努力が行われています。しかし、設計はレガシーコードによって妨げられているため、設計の基本ではなく、単にボルトで固定されています。よく知られているほとんどのデータベースエンジンを拡張しようとすると、この問題が発生します。スレーブサーバーの追加は設定が非常に困難な場合がありますが、それには重大な制限があり、その中にはデータベーステーブルの再ジギングが必要なものもあります。
たとえば、それらのほとんどは、マルチマスター設計ではなく、マスター/(マルチ)スレーブです。つまり、サーバー全体がそこに座っているだけで、クエリを処理できない場合があります。いくつかありますが、制限があります。たとえば、読み取り専用のマルチスレーブ設計です。したがって、1つのサーバーが書き込みを行い、他のすべてが読み取り専用データを提供する場合があります。これらのシステムをセットアップすると、必ずしも簡単なプロセスではなく、うまく機能するのが難しいことに気付くでしょう。多くの場合、それは非常に追加されているように感じます。
一方、最初から並行性とマルチマスター設計で開発されている新しいデータベースエンジンがいくつかあります。 NOSQLおよびNewSQLは新しい設計クラスです。
したがって、従来のSQLサーバーからパフォーマンスを向上させる最善の方法は、スケールアップすることです。NOSQLとNewSQLでは、スケールアップとスケールアウトの両方が可能です。
従来のRDBMSシステムが密結合されている理由は、すべて同じデータの一貫したビューが必要だからです。異なるクライアントから同じデータへの更新を受け入れる複数のサーバーがある場合、どれを信頼しますか?何らかのロックメカニズムを介してデータの一貫性を確保しようとする方法では、クライアントから読み取ったデータが古くなる可能性があるため、パフォーマンスを低下させたりデータ品質に影響を与える他のサーバーとの連携が必要です。また、サーバーは、同じレコードに書き込むときに、どのデータが最新であるかをサーバー間で決定する必要があります。ご覧のとおり、データへのアクセスが依然として非常に高速なプロセスやスレッド間だけでなく、ワークロードがサーバー全体に分散しているという事実によって、複雑な問題がより複雑になっています。