Nosql データベースと、データを自動的に分割する機能

公開: 2022-11-23

Nosql データベースは、負荷を分散してパフォーマンスを向上させるために、複数のサーバー間でデータを自動的に分割できます。 これは、データをシャードと呼ばれる小さな断片に分割し、それらのシャードをサーバー全体に分散することによって行われます。 Nosql データベースは、負荷を分散してパフォーマンスを向上させるために、複数のサーバー間でデータを自動的に分割できます。

シャードが大きすぎるか、方向性が高い場合、自動的に分割できます。 自動シャーディング機能により、プログラムに過負荷がかからず、データの配置やデータの取得などの他のタスクに時間を割くことができます。

MongoDB コレクションのドキュメントは、シャード キーを使用してシャード全体に分散されます。 MongoDB は、データを重複しないキー値の範囲に分割することで、データをチャンクに分割します。 これらのチャンクを分散する MongoDB の取り組みの一環として、クラスターのシャード間で均等に分散しようとします。

Nosql を複数のサーバーに分散できますか?

写真提供: ringcentral

はい、NoSQL データベースは複数のサーバーに分散できます。 これにより、データのスケーラビリティと可用性が向上します。

また、冗長性を提供することにより、システムのセキュリティを向上させることもできます。

クラスタリングの結果、データは複数のサーバーに分散され、独立したソースとして使用できます。
データが複数のサーバー間で転送されるのはなぜですか?
全体的なパフォーマンスを向上させるために、システムが複数のサーバーに負荷を分散すると有利です。

Mongodb は自動シャーディングをサポートしていますか?

MongoDB は自動シャーディングをサポートしています。つまり、データは複数のサーバーに自動的に分散されます。 これにより、サーバーの追加に合わせてシステムを簡単に拡張できます。

レコードは、コレクションまたはテーブルの残りの部分から分離し、それらをシャードと呼ばれる複数のマシンに分散するプロセスで断片に分割されます。 この記事では、シャード クラスターを開発環境で数分でセットアップして実行する方法について説明します。 この記事では、適切なシャード キーを選択する方法と、MongoDB ドキュメントが書き込まれるときにシャード間で均等に分割されるようにする方法について説明します。 このチュートリアルでは、シャード クラスターを構成する 4 つのMongoDB サーバーについて説明します。 mongo-config コマンドを実行すると、青色の背景が使用されていることがわかります。 リソースが最も多いサーバーで実行されているすべてのコマンドは、赤い背景を表示しているように見えますが、他のサーバーで実行されているコマンドは、緑または緑の背景を表示しているように見えます。 これらのロールがどのように機能するかについての詳細は、MongoDB のシャーディング トポロジについてを参照してください。

MongoDB 3.6 では、個々のシャードと構成サーバーの両方をレプリカとして構成する必要があります。 複数のメンバーを持つ複数のレプリカ セットを持つことは、データの安全性と可用性を維持するのに役立ちます。 ただし、シャード アーキテクチャの複雑さは大幅に増加します。 次の記事では、シャード クラスターをできるだけ早くセットアップして実行する方法について説明します。 MongoDB インスタンスで認証を有効にした場合は、パスワード認証のみが必要になります。 このチュートリアルで最良の結果を得るには、mongod.conf ファイルでセキュリティ ブロックを無効にする必要があります。 次に、値 configsvr を clusterRole ディレクティブに追加します。

その結果、MongoDB は、シャード クラスターでこのサーバーをホストすることを担当します。 シャード クラスターのレプリカ セット名とロールは、MongoDB が実行構成で実行されるときに読み取られます。 レプリカの最初のセットは、シャード クラスター内の構成サーバーに作成されます。 このステップでは、両方の個々のシャードの構成をレプリケートできるようになります。 MongoDB-shard1 で MongoDB を使用している場合は、設定ファイルを MongoDB-shard1 と MongoDB-shard1 にコピーします。 その結果、各 MongoDB インスタンスには、シャードとして機能する一連のサーバーが含まれます。 シャードを使用する前に、mongo シェルを介して開始する必要があります。

このガイドは、構成サーバーと 2 つのシャード サーバーを使用してシャード クラスターを構成および実行する方法を支援することを目的としています。 製造環境での使用には適していません。 1 番目と 2 番目のレプリカ セットである Mongo-Shard1 と Mongo-Shard2 は、どちらも単一ノードのレプリカです。 2 つのシャードのうちの 1 つは名前でプロンプトを表示し、もう 1 つは名前でプロンプトを表示します。 両方の MongoDB シェルで、 thers.status() メソッドを使用して、各レプリカ セットが適切に構成されていることを確認できます。 これらのコンポーネントは、mongos クエリ ルーターを介してシャード クラスターにリンクする必要があります。 構成サーバーの管理とシャードサーバーとの通信を担当します。

mongos コマンドが実行されたので、mongo_shardip を使用してシャード クラスターにシャードを追加できます。mongo_shardip は、mongo-shard1 を実行しているサーバーの IP アドレスです。 このコマンドを使用すると、接続されたシャードの空のリストがシャード キーに表示されます。 sh.status() メソッドを使用すると、クエリ ルーターが構成サーバーと同じディレクトリにあることを確認できます。 MongoDB データベースでシャーディングが有効になっている場合、他のデータベースと同じ方法でのみデータを保存できます。 世界で最も人口の多いいくつかの都市から集められた文書が、このガイドの基礎となります。 次のメソッドを使用して、データベースのシャーディングを有効にすることができます: enableSharding() コマンドは、実行されるとすぐにエラー メッセージを返します。 許可するようにデータベースを構成すると、都市のコレクションをパーティション化できるようになります。

このガイドに従うことで、機能するMongoDB シャード クラスターを作成する方法を学習できます。 人口データベースの都市コレクションは、シャード キーが使用される国フィールドに分割されます。 その後、次のコマンドを使用して 20 個のドキュメントを挿入できます: many. 通常の MongoDB データベースとまったく同じように動作するため、出力は MongoDB の典型的な出力に似ています。 都市コレクションからすべてのドキュメントを取得する場合は、すべてのシャードを使用してクエリを実行する必要があることが保証されています。 MongoDB は、shards キーを使用して、評価に参加しているシャードのリストを返します。 探しているシャード キーがない大陸フィールドに対してクエリを実行する場合は、比較を実行する必要がある場合があります。 このチュートリアルでは、MongoDB の構成サーバーと個々のシャードを構成する方法と、それらすべてを接続して分散 MongoDB クラスターを形成する方法について説明します。 また、mongos クエリ ルーターを使用して、シャードを自動化し、データ パーティションを導入し、データベースに対してクエリを実行し、メトリックを監視しました。

このタッキングのプロセスを通じて、データは複数のホスト間で分散されます。 MongoDB インスタンスは、シャーディングを実現するために、大きなデータ セットを小さなセットに分割できます。 この機能を使用すると、アプリケーションに新たな複雑さを追加することなく、単一サーバーの機能を超えてアプリケーションが成長しても、データベースをシームレスにスケーリングできます。
MongoDB の助けを借りて、アプリケーションを複雑にすることなく、データベースを簡単に拡張できます。 MongoDB を使用すると、アプリケーションに複雑さを加えることなくデータベースをスケーリングできます。これは、アプリケーションの成長に合わせて行うことができます。 MongoDB のシャーディングにより、アプリケーションを複雑にすることなくデータベースをスケーリングできます。

Mongodb シャーディングの基本

シャーリングは、データをシャードに分割することで可能になります。 ノードが 1 つの場所にデータを保存する場合、シャードは 1 つの場所に保存されるデータの一部です。 その後、各シャードはシステム内のデータ ノードに送信され、分散されます。 シャードで読み取りまたは書き込み操作が実行される場合、最初のステップは、データノードにデータが存在することを確認することです。 状態が変わらない限り動作します。 データが存在しなくなった場合は、データ ノードに保存され、新しいシャード インデックスが生成されます。 MongoDB では、柔軟で使いやすいように設計されています。 シャード管理ツールを使用すると、単一のセッションでデータを簡単に作成、削除、および再配置できます。 シャード インデックスを使用すると、数秒でシャードのデータを検索してアクセスできます。 MongoDB のレプリカ セット機能に加えて、データベースには、別の MongoDB ノードからのデータ シャードのレプリカを格納するセカンダリ レプリカ セット機能も含まれています。 その結果、データ ノードの 1 つに障害が発生した場合でも、システムは引き続き機能します。 MongoDB オートシュレッド方式は、データ セットをシャードに自動的に分割し、それらを複数のデータ ノードに分散する方式です。 大きなデータセットを小さなチャンクに分割することで、複数のデータ ノードがそれらを大量に保存できるようになり、システムのストレージ容量が増加します。

Nosql データベースにはシャーディングが必要ですか?

問題の特定の NoSQL データベースとその使用方法に依存するため、この質問に対する決定的な答えはありません。 一般に、データベースがトラフィックの多いアプリケーションに使用されている場合、またはデータベースが非常に大きくなると予想される場合は、シャーディングが必要になることがあります。 ただし、一部の NoSQL データベースは、最初から水平方向にスケーラブルになるように設計されており、シャーディングが不要な場合があります。 最終的には、特定のデータベースのドキュメントまたはサポートを参照して、シャーディングが必要かどうか、または推奨されるかどうかを判断することをお勧めします。

データベース シャーディングを使用すると、大規模なデータ セットを効果的に管理およびスケーリングできます。 1 つの論理データセットが複数のデータベースに分割され、これらのデータベースが複数のマシンに分散されます。 クエリが実行されるとき、少数のコンピューターのみが関与する可能性があります。 データベース シャーディングは、SQL データベースと NoSQL データベースの両方で可能です。 その結果、Sharding にはシェアード ナッシング アーキテクチャがあります。 ブレードのメンバーは、ブレードの他のメンバーを認識しません。 クロスパーティション クエリを減らし、適切な粒度でシャーディングすることによって負荷を均等に分散するという 2 つのバランスを取る必要があります。

シャード キーのデータ型は、効率的にするために整数である必要があります。 サーバーは同時に複数のシャードをホストできます。 サーバーの負荷が高くなると、分離が必要になる場合があります。 各シャードのプロキシは、キャッシングとモニタリングに加えて、キャッシングとモニタリングのアクティビティを実行できます。 シャーディングの主な利点は、水平スケーリング、パフォーマンスの向上、および可用性の向上です。 シャードを使用して、クラウド サービスをデプロイできます。 アップグレードは、すべてのシャードに配布する前に、単一のシャードでテストできます。

お客様の取引は、規制要件がある場所やシャードが配置されている場所で行うことができます。 SQLite、Memcached、Zookeeper、Postgres-XC/XL、および Citus はすべて適切なオプションです。 RDS は、シャード データベースの作成と展開を可能にするサービスです。 レプリケーションと亜大陸シャーディングの両方を同時に実行できます。 CPU とメモリの使用率、および読み取り/書き込みパフォーマンスを使用して、すべてのシャードの効率を判断できます。 ホットスポット領域がある場合は、再研磨を検討する必要があります。 「シャード」という用語は、コンピューティングおよびストレージのコンテキストで頻繁に使用されるため、大規模マルチプレイヤー オンライン ゲームのウルティマ オンラインに由来するようです。

Facebook のエンジニアは、Cassandra と呼ばれる NoSQL データベースを開発しています。 Google の Bigtable を使用すると、数ペタバイトのデータをコモディティ サーバー全体に保存できます。 Vitess は、データベースのスケーラビリティの問題を解決するために、YouTube のチームによって作成されました。 Vitess の支援により、ルーティング ロジックをアプリケーション コードから削除できます。

Sharding を使用すると、大量のデータを処理できます。 データ セットをシャードに分割する最も一般的な方法は、サード パーティを使用することです。 SQL および NoSQL データベースからデータをフェッチする機能は非常に便利です。 SQL は、確立されたよく知られたデータベース テクノロジです。 NoSQL データベースは高速で信頼性が高いため、大規模なデータベースにとって魅力的なオプションです。
シャーディングを使用すると、大規模なデータセットを簡単に管理できます。 SQL および NoSQL データベースは、それを使用してデータベースのパフォーマンスを向上させることにより、恩恵を受けることができます。

シャーディングの利点

データは、シャーディングの方法を使用して複数のコンピューターに分散されます。 STreeving は、大規模なデータ セットが密集し、大規模なスループット操作を必要とする MongoDB 展開の重要な機能です。 大規模なデータ セットまたは大規模なスループット アプリケーションを備えたデータベース システムは、1 台のサーバーで大量のスペースを使用する可能性があります。 単一のデータベースに格納できないデータ セットには、シャーディング プロセスが必要です。 考えを変える必要がある場合に備えて、この回答を保存してください。 Cassandra の各ノードは、サブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットのサブセットを保持することのみを担当します。 Cassandra のスケーリングのサブセットのサブセットを使用すると、データを水平方向に処理できます。これは、データが複数のノードに分散されている場合に役立ちます。

Nosql データベースでのシャーディング

シャード Nosql データベースでは、データは多数のサーバーに分割され、各サーバーはデータのサブセットを保持します。 このアプローチでは、データを複数のサーバーに分散させ、並列でクエリを実行できるようにすることで、パフォーマンスを向上させることができます。

最大のスケーラビリティを実現するには、大きなデータセットを小さなデータセットに分割し、複数のドメインに分散する必要があります。 データをパーティショニングすると、データを複数のノードに分散できるため、ノード間での実行が向上します。 パーティショニングはデータベースの構成要素の 1 つにすぎません。すべてのノードが富を共有することを保証できれば、各パーティションは独自のデータ センターとして機能できます。 キーベースのデータ分散を使用して、データを複数のパーティションに分割できます。 すべてのデータが 1 つのファイル システムに格納されているため、e コマース アプリケーションでは、1 日または 1 時間ごとにすべてのデータを読み取る必要がある場合があります。 この問題は、各タイムスタンプのパーティション名としてプレフィックスを持つキーを定義することで回避できます。 各パーティションにキー ハッシュのセット (キーのセットではなく) が割り当てられると、そのセット内のすべてのキーがそのパーティションに格納されます。

ホット スポットは削減されますが、キーのハッシュを使用して完全に排除されるわけではありません。 一度に 1 つではなく、複数のパーティションにキーを分散させる傾向があります。 読み取りプロセスと書き込みプロセスがリンクされている場合、すべての要求は同じパーティションへの同じパスをたどり続けます。 多くの場合、データ システムはホットキーを使用して、偏ったワークロードを補正します。

Mongodb での自動シャーディング

Mongodb の自動シャーディング機能は、複数のシャードにデータを自動的に分散することで、データベースの水平方向のスケーラビリティを可能にします。 これにより、シャードを手動で構成および管理する必要なく、データベースのサイズとスループットを拡大できます。

MongoDB のシャーディング テクノロジは、大規模なデータ セットと高スループットを伴う展開に最適です。 ランダム アクセスを使用して複数のマシン間でデータを送信する行為は、サンプリングと呼ばれます。 サーバーを数台追加するだけで、展開の容量を完全に拡張できます。 展開中のインフラストラクチャとメンテナンスのコストの増加は、効率の向上によって相殺されます。 バージョン 4.2 以前では、シャード コレクションのキー フィールドはすべてのドキュメントに存在する必要があります。 コレクションがある場合は、MongoDB 5.0 によって設定されたキーを使用して再シャーディングできます。 キーとそのバッキング インデックスによっては、シャーディング戦略の変更を余儀なくされる場合があります。

MongoDB 4.4 がリリースされると、待ち時間を短縮するためにヘッジされた読み取りが有効になります。 クラスター内の各シャードは、クラスターのデータのサブセットを個別のインスタンスに格納できるため、クラスター間でデータを分散できます。 データセットが大きくなるにつれて、クラスターのストレージ容量が増加します。 コレクションはシャーディングされているため、コレクションをアンシュレッドする方法はありません。 MongoDB は、シャードされたクラスター間でデータを分散するための 2 つのシャーディング戦略を提供します。 ハッシュ キー フィールドの値のハッシュは、ハッシュされたキー フィールドの値を計算するために使用されます。 範囲ベースのシャーディングを使用すると、クラスター全体でより多くのブロードキャスト操作を実行できます。

シャード キーの評価が低いと、データ分散が不均一になり、シャーディングの利点が損なわれ、パフォーマンスのボトルネックが発生する可能性があります。 MongoDB 4.0.3 以降でゾーンとゾーン範囲を構成すると、空のコレクションまたは存在しないコレクションをシャーディングする前に、ゾーンとゾーン範囲を作成できます。 次のコマンドは照合を生成します: /jira/ シャード キーを選択するときは、将来ゾーンが使用される可能性を考慮することが重要です。 アグリゲーションでシャーディングがどのように機能するかについての詳細は、Practical MongoDB Aggregations e-book を参照してください。

レプリケーションとシャーディング

レプリケーションの概念はデータセットの複製と考えることができますが、シャーディングの概念はデータセットを個別のチャンクに分割することを伴います。 シャーディングを使用すると、コレクションを複数の部分に分割できます。 データベースを複製すると、データ セットのイメージャが生成されます。

どちらの場合でも、レプリケーションとシャーディング システムを構築して、高可用性 (HA) を有効にすることができます。 単一のサーバーにデータ レコードを格納できるため、クエリの読み取りと書き込みの応答時間が短縮されます。 データのセット全体が複製されると、複数のサーバーがそれをコピーします。 サーバーに障害が発生したりオフラインになったりすると、クラスター内の残りのサーバーが引き継ぎます。 MongoDB データベース システムは、リレーショナル データベースと競合するドキュメント ベースのシステムです。 このシステムへの切り替えは、セットアップと構成が MySQL のシステムと似ているため、比較的簡単です。 このチュートリアルでは、MongoDB を使用してユーザーが生成したコメントを保存および表示する方法について説明します。

パーティショニングとシャーディングの違いは何ですか?

データ シャーディングとデータ パーティショニングはどちらも、大量のデータ セットを小さな断片に分割することを伴います。 シャーディングとは、データが複数のコンピューターに分散されることを意味しますが、パーティションとは異なります。 パーティショニングの目的は、データベース インスタンス内のデータのサブセットをグループ化することです。

シャーディングの利点

その結果、データベースがデータセットのサイズを処理できない場合は、より小さいサブセットに分割し、シャーディングを使用して異なるノードに分散できます。 データセットは多数のマシンに保存されるため、データとトラフィックの量に応じてスケールアップできます。

Redis レプリケーションとシャーディングの違いは何ですか?

データ分割とも呼ばれるパーティショニングは、データをキーで分割するプロセスです。 一方、ミラーとも呼ばれるレプリケーションは、すべてのデータをコピーするプロセスです。 シャーディングの一般的な方法は、すべてのリソースでメモリとヒット負荷を同時に削減することにより、パフォーマンスを向上させます。 読み取りの複製により、高レベルの読み取り可用性が可能になります。

インデックス作成対。 シャーディング: データベースに最適なのはどれか?

データの分散は、インデックス作成とシャーディングという 2 つの方法によって複雑になります。 テーブルを参照するとパフォーマンスが向上し、シャーディングはデータベースのスケールアウトに役立ちます。
テーブル内の特定の値を検索する場合、インデックスを作成すると便利です。 2017 年 5 月 1 日から 2017 年 5 月 2 日の間に行われたすべての注文を検索する場合は、検索インデックスを使用できます。
データベースのスケーリングは、データベースをドラッグすることで実行できます。 テーブルをスレーブ化するには、テーブルを複数のマシンで複数のセクションに分割する必要があります。 その結果、テーブル内のデータを検索することで、より簡単にテーブルにアクセスできます。
さらに、シャーディングは、一般的にデータベースのパフォーマンスを向上させるのに役立ちます。 テーブルを小さな断片に分割すると、データベースで処理する必要があるデータの量を減らすことができます。 これにより、データベースの全体的な速度が向上します。

シャーディングの利点はどれですか?

シャーディングを使用すると、読み取り/書き込みスループット、ストレージ容量、および高可用性が向上するため、データベースをスケーリングして、より大きな負荷を処理できます。

シャーディングのセキュリティリスク

このセキュリティ問題には、2 要素認証の要求やデータの暗号化など、いくつかの解決策があるにもかかわらず、依然として懸念事項です。 HTML のコンテキストでランダムなフォトンを使用すると、接続されていない複数のフォトンが作成されるため、理論的にはこのリスクを軽減できます。 シャーディングがセキュリティ リスクを軽減するというさらなる証拠が得られるまでは、注意を怠ってデータを分離しておくのが最善です。

その他のデータ シャーディング リソース 分散 SQL シャーディング

SQL シャーディング実装の特定のニーズに大きく依存するため、この質問に対する決定的な答えはありません。 ただし、追加のデータ シャーディングに使用できる一般的なリソースには、ディスク領域、CPU リソース、メモリなどがあります。 一般に、複数のサーバーにデータを分散するために使用できるリソースは、追加のデータ シャーディングに使用できます。

データベースのスケーラビリティは、2 つの方法のいずれかで実現できます。 データベース シャーディングは、データベース内のテーブル レコードの数に基づいて、データベースを小さなチャンクに分割します。 個々のテーブルは、単純な実装でさまざまなカテゴリに分割できます。 このガイドでは、データベース シャーディングがどのように機能するかを説明し、その利点と欠点について説明します。 このテクノロジは、非常に少数のテーブルに大量のデータを格納するデータベースに特に役立ちます。 一般に、すべてのテーブルにシャーディングが必要なわけではなく、すべてのテーブルを同時にシャーディングできるわけではありません。 STreeching は、その目標としてシェアード ナッシング アーキテクチャを目指しています。

実際には、あるシャードから別のシャードにデータをレプリケートすることは有益です。 データベース シャーディング戦略は水平スケーリング戦略であるため、水平スケーリング戦略の利点の多くを共有します。 さらに、これらに加えて、いくつかの追加の利点を提供します。 水平方向にスケーリングする機能は、システムで高いスケーリング率を達成するために重要です。 範囲シャーディングでは、シャーディング キーの値を使用して、どの範囲に収まるかを判断します。 ハッシュ関数のキーは、レコードがどのシャードに割り当てられるか、およびどのパスを使用するかを決定するために使用されます。 キーをシャードに直接マッピングする代わりに、ハッシュ関数を使用してマッピングします。

その結果、レコードは通常、異なるシャードにより均等に分散されます。 各操作のすべてのキーで同じハッシュ関数を使用することが重要です。 ルックアップ テーブルを必要としないため、ハッシュはレンジ シャーディングよりも効率的です。 破片のバランスが完全に保たれるかどうかを知ることは不可能です。 データにパターンがなくても、クラスタリングは偶然にトリガーされる可能性があります。 ハッシュ シャーディングを扱う場合、シャードのリバランスと再構築は困難です。 これは、ディレクトリ構造に基づくストア データベースに最適です。

ニュー イングランドおよび中部大西洋地域には、北東地域として機能する最初のシャードに場所があります。 同じプロセスが地理的分離にも使用されますが、場所に基づいてシャードにデータを割り当てる代わりに、データをセグメントに分割します。 データベース テーブルでは、シャーディング キーを使用して、テーブル内のビット数に基づいて複数の異なるシャード間でデータを分散します。 その結果、地域の販売チームは、顧客データを数秒で迅速かつ効率的に確認できます。 シャーディングが関係している場合、会社のデータベースのサイズが増大していることを考慮することが特に重要です。 データベースは、数台のサーバーだけができるのと同じように、格納、メモリ、および処理能力によって水平方向にスケーリングできます。 データベースの複雑さが増すだけでなく、シャーディングはスキーマの結合と変更を難しくします。 複数の Linode サーバーを使用して、シャード データベースを作成できます。

3種類のシャーディング

シャーディングの 3 つのタイプは次のとおりです。(1) 自発的です。 (2) それらは維持されなければなりません。 (3) 使用する必要があります。 初等教育。 このタイプのシャーディングでは、各シャードに主キーが割り当てられ、データを格納するために各シャードのレプリカが作成されます。 このアプローチは通常、データ セットが小さく、機密データが含まれていない場合に使用されます。
このタイプのデータ分割の結果として、データはその座標に基づいてシャードに分割されます。 これは、データが地理的に分散しており、パフォーマンス上の理由からシャードをまとめて保持する必要がある場合に使用されます。
コンパクション シャーディングは、データの機密性が高くなく、更新回数が少ない場合に使用されるシャーディングの一種です。 データをシャードに分割する代わりに、データをブロックに分割してからシャーディングします。 通常、この方法は、データセットのサイズがシャードの数よりも小さい場合に使用されます。

Mongodb シャーディング

MongoDB シャーディングは、複数の MongoDB インスタンス間でデータを分割する水平スケーリング手法です。 複数のサーバーにデータを分散することで、シャーディングはパフォーマンスを向上させ、容量を増やすことができます。 レプリカ セットで使用すると、シャーディングによって可用性も向上します。

DHCP を介して複数のホスト間でデータを分散するプロセスは、ハッシュと呼ばれます。 MongoDB データベースを監視するには、データベースを小さなデータ セットに分割します。 クエリ レートが高いと、CPU、RAM、およびディスク ドライブの I/O 能力に負担がかかる可能性があります。 スケーリングには、水平方向と垂直方向の 2 種類があります。 すべての MongoDB コレクション ドキュメントは、デフォルトですべての MongoDB コレクションのシャードに分散されます。 すべてのドキュメントは、キーと呼ばれる単一のフィールドまたは複数のフィールドで構成されています。 シャード コレクション内のコレクションごとに必要なシャード キーは 1 つだけです。

スウォームは、クラスターのパフォーマンスに影響を与えるだけでなく、アプリケーションのボトルネックを引き起こす可能性があります。 このセクションでは、シャード キーを作成するために、MongoDB コレクションと person_id というインデックスを作成します。 クエリ ルーターはシャーディング プロセスに使用され、people というデータベースが作成されます。 シャードのデータベース ストレージ、ログ、およびシャーディング クラスター ロールの構成ファイルは、PostgreSQL ディレクトリにあります。 さらに、サーバー インスタンスのネットワーク設定も含まれます。 MongoDB シャーディングを使用すると、ワークロードをさまざまなサーバーに分散できるため、大規模なデータ セットをより効率的に管理できます。 クラスタは、ハードウェア インフラストラクチャを完全に再構築することなく、将来のニーズに合わせて効率的にスケーリングできます。 次の出力では、persons コレクションが ShardRepSet (10.10.58) に分割されています。