798

多くの NoSQL データベースと SQL データベースに出くわしました。これらのデータベースの長所と短所を測定するさまざまなパラメータがあり、スケーラビリティはその 1 つです。これらのデータベースの水平スケーリングと垂直スケーリングの違いは何ですか?

4

10 に答える 10

1408

水平スケーリングとは、リソースのプールにマシンを追加してスケーリングすることを意味し、垂直スケーリングとは、既存のマシンに処理能力 (CPU、RAM) を追加してスケーリングすることを意味します

これを覚える簡単な方法は、サーバー ラック上のマシンを考えることです。水平方向にマシンを追加し、垂直方向にマシンにリソースを追加します。

                  水平スケーリング/垂直スケーリングの可視化

データベースの世界では、水平スケーリングは多くの場合、データの分割に基づいています。つまり、各ノードにはデータの一部しか含まれていません。垂直スケーリングでは、データは単一のノードに存在し、マルチコアを介してスケーリングが行われます。つまり、負荷が分散されます。そのマシンの CPU と RAM リソースの間。

水平スケーリングでは、多くの場合、既存のプールにマシンを追加することで動的にスケーリングする方が簡単です。垂直スケーリングは、多くの場合、1 台のマシンの容量に制限されます。その容量を超えてスケ​​ーリングすると、多くの場合、ダウンタイムが発生し、上限が生じます。

水平方向のスケーリングの良い例は、Cassandra、MongoDB、Google Cloud Spanner .. であり、垂直方向のスケーリングの良い例は、MySQL - Amazon RDS (MySQL のクラウド バージョン) です。小型マシンから大型マシンに切り替えることで、垂直方向に簡単にスケーリングできます。多くの場合、このプロセスにはダウンタイムが伴います。

GigaSpaces XAPCoherenceなどのインメモリ データ グリッドは、ディスクにバインドされていないという理由だけで、水平方向と垂直方向の両方のスケーリングに対して最適化されることがよくあります。パーティショニングによる水平スケーリングと、マルチコア サポートによる垂直スケーリング。

この件については、私の以前の投稿で詳しく読むことができます: スケールアウトとスケールアップ、およびNOSQL 代替手段の背後にある共通の原則

于 2012-07-30T04:57:16.420 に答える
11

言及されていない追加のアーキテクチャがあります - SQL ベースのデータベース サービスは、複雑な手動シャーディングなしで水平方向のスケーリングを可能にします。これらのサービスはバックグラウンドでシャーディングを行うため、MongoDB や CouchDB などの NoSQL エンジンと同様に、従来の SQL データベースを実行してスケールアウトできます。私がよく知っている 2 つのサービスは、EnterpriseDB for PostgreSQL とXeround for MySQL です。Xeround による詳細な投稿を見ました。SQL データベースでのスケールアウトが難しい理由と、スケールアウトのやり方が異なる方法について説明しています。これはベンダーの投稿であるため、大まかに扱ってください。ウィキペディアのクラウド データベース エントリもご覧ください。には、SQL と NoSQL、サービスとセルフホストの優れた説明、各組み合わせのベンダーとスケーリング オプションのリストがあります。;)

于 2012-09-10T09:52:20.310 に答える
9

はい、水平方向のスケーリングはマシンを追加することを意味しますが、マシンがクラスター内で同等であることも意味します。MySQL は、レプリカを使用してデータの読み取りに関して水平方向にスケーリングできますが、サーバーのメモリ/ディスクの容量に達すると、サーバー間でデータのシャーディングを開始する必要があります。これはますます複雑になります。多くの場合、レプリケーション速度が遅すぎてデータの変更速度に追いつかないため、レプリカ間でデータの一貫性を維持することが問題になります。

Couchbase は素晴らしい NoSQL 水平スケーリング データベースでもあり、多くの商用高可用性アプリケーションやゲームで使用されており、間違いなくこのカテゴリで最高のパフォーマンスを発揮します。クラスター間でデータを自動的に分割し、ノードの追加は簡単で、コモディティ ハードウェアや安価な VM インスタンスを使用できます (たとえば、AWS では High Mem の代わりに High Disk マシンを使用します)。Membase (Memcached) から構築されていますが、永続性が追加されています。また、Couchbase の場合、すべてのノードが読み取りと書き込みを行うことができ、クラスター内で同等であり、フェイルオーバー レプリケーションのみが使用されます (mySQL のようにすべてのサーバーにまたがる完全なデータセット レプリケーションではありません)。

パフォーマンスに関しては、優れた Cisco ベンチマークを見ることができます: http://blog.couchbase.com/understanding-performance-benchmark-published-cisco-and-solarflare-using-couchbase-server

Couchbase アーキテクチャに関する素晴らしいブログ投稿はこちらです: http://horicky.blogspot.com/2012/07/couchbase-architecture.html

于 2012-08-01T06:34:24.570 に答える
7

従来のリレーショナル データベースは、クライアント/サーバー データベース システムとして設計されていました。それらは水平方向にスケーリングできますが、そのプロセスは複雑でエラーが発生しやすい傾向があります。NuoDB のような NewSQL データベースは、従来の RDBMS の SQL/ACID プロパティを維持しながら、水平方向にスケールアウトするように設計されたメモリ中心の分散データベース システムです。

NuoDB の詳細については、テクニカル ホワイト ペーパーを参照してください。

于 2014-07-14T12:03:58.697 に答える
5

Oracle や db2 などの SQL データベースは、共有ディスク クラスターによる水平スケーリングもサポートしています。たとえば、Oracle RAC、IBM DB2 purescale、Sybase ASE Cluster エディションなどです。新しいノードを Oracle RAC システムまたは DB2 purescale システムに追加して、水平スケーリングを実現できます。

ただし、このアプローチは noSQL データベース (mongodb、CouchDB、IBM Cloudant など) とは異なり、データ シャーディングが水平スケーリングの一部ではないという点です。noSQL データベースでは、データは水平スケーリング中に細分化されます。

于 2017-01-04T08:14:02.133 に答える